diff --git a/.gitignore b/.gitignore index 5a3550909..58a0e0fbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea .vscode /REVISION /beta diff --git a/web/.nvmrc b/web/.nvmrc new file mode 100644 index 000000000..bf79505bb --- /dev/null +++ b/web/.nvmrc @@ -0,0 +1 @@ +v16.14.0 diff --git a/web/package.json b/web/package.json index 3ad92ea28..6354657ea 100644 --- a/web/package.json +++ b/web/package.json @@ -18,20 +18,19 @@ "lint:stylelint:fix": "stylelint --fix style/*scss" }, "devDependencies": { - "@babel/core": "^7.14.3", - "@babel/eslint-parser": "^7.14.3", + "@babel/core": "^7.14.8", + "@babel/eslint-parser": "^7.14.9", "@babel/plugin-proposal-class-properties": "^7.13.0", - "css-loader": "^5.2.4", - "css-minimizer-webpack-plugin": "^3.0.0", + "css-loader": "^5.2.7", + "css-minimizer-webpack-plugin": "^3.0.2", "eslint": "^7.26.0", "eslint-plugin-sonarjs": "^0.7.0", "eslint-plugin-unicorn": "^32.0.1", "file-loader": "^6.2.0", - "img-optimize-loader": "^1.0.7", - "mini-css-extract-plugin": "^1.6.0", - "node-sass": "^6.0.0", + "mini-css-extract-plugin": "^1.6.2", + "node-sass": "^6.0.1", "npm-run-all": "^4.1.5", - "prettier": "^2.3.0", + "prettier": "^2.3.2", "sass": "^1.32.13", "sass-loader": "^11.1.1", "style-loader": "^2.0.0", @@ -40,14 +39,14 @@ "stylelint-config-primer": "^11.0.1", "stylelint-config-sass-guidelines": "^8.0.0", "stylelint-config-standard": "^22.0.0", - "svgo": "^2.3.0", + "svgo": "^2.3.1", "svgo-loader": "^3.0.0", - "terser-webpack-plugin": "^5.1.2", + "terser-webpack-plugin": "^5.1.4", "url-loader": "^4.1.1", - "webpack": "^5.37.0", + "webpack": "^5.37.1", "webpack-bundle-analyzer": "^4.4.2", - "webpack-cli": "^4.7.0", - "webpack-dev-server": "^3.11.2" + "webpack-cli": "^4.7.2", + "webpack-dev-server": "^3.11.3" }, "dependencies": { "lodash.isequal": "^4.5.0" diff --git a/web/public_html/index.html b/web/public_html/index.html index dab966804..d8be449ac 100755 --- a/web/public_html/index.html +++ b/web/public_html/index.html @@ -24,22 +24,24 @@ class="toolbar-button" data-action="open-torrent" id="toolbar-open" + tabindex="0" > -
+ - + diff --git a/web/public_html/transmission-app.js b/web/public_html/transmission-app.js index 61b111dd2..0531c1ece 100644 --- a/web/public_html/transmission-app.js +++ b/web/public_html/transmission-app.js @@ -1,3 +1,3 @@ /*! For license information please see transmission-app.js.LICENSE.txt */ -(()=>{var e={592:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ve});var r=n(15),o=n.n(r),s=n(645),i=n.n(s),a=n(667),l=n.n(a),d=n(908),c=n(466),A=n(560),p=n(289),u=n(450),g=n(577),m=n(803),h=n(820),f=n(438),b=n(319),C=n(190),v=n(54),y=n(690),E=n(350),w=n(174),x=n(785),k=n(373),M=n(173),S=n(25),I=n(557),B=n(912),D=n(842),T=n(308),L=n(749),N=n(886),j=n(689),_=n(520),z=n(602),F=n(371),O=n(961),P=n(93),U=n(166),R=i()(o()),G=l()(d.Z),Y=l()(c.Z),Q=l()(A.Z),Z=l()(p.Z),W=l()(u.Z),J=l()(g.Z),H=l()(m.Z),q=l()(h.Z),V=l()(f.Z),K=l()(b.Z),X=l()(C.Z),$=l()(v.Z),ee=l()(y.Z),te=l()(E.Z),ne=l()(w.Z),re=l()(x.Z),oe=l()(k.Z),se=l()(M.Z),ie=l()(S.Z),ae=l()(I.Z),le=l()(B.Z),de=l()(D.Z),ce=l()(T.Z),Ae=l()(L.Z),pe=l()(N.Z),ue=l()(j.Z),ge=l()(_.Z),me=l()(z.Z),he=l()(F.Z),fe=l()(O.Z),be=l()(P.Z),Ce=l()(U.Z);R.push([e.id,":root{--color-bg-even: #fff;--color-bg-hover: #f6f8fa;--color-bg-menu: #e1e4e8;--color-bg-odd: #f6f8fa;--color-bg-selection-1: #e6dcfd;--color-bg-selection-2: #f5f0ff;--color-border: #959da5;--color-fg-disabled: #959da5;--color-fg-error: #d73a49;--color-fg-name: #2f363d;--color-fg-port-closed: #d73a49;--color-fg-port-open: #28a745;--color-progressbar-background-1: #f6f8fa;--color-progressbar-background-2: #959da5;--color-progressbar-verify-1: #f692ce;--color-progressbar-verify-2: #b93a86;--color-progressbar-magnet-1: #ffea7f;--color-progressbar-magnet-2: #dbab09;--color-progressbar-magnet-paused-1: #fff5b1;--color-progressbar-magnet-paused-2: #6a737d;--color-progressbar-leech-paused-1: #c8e1ff;--color-progressbar-leech-paused-2: #6a737d;--color-progressbar-leech-queued-1: #dbedff;--color-progressbar-leech-queued-2: #79b8ff;--color-progressbar-leech-1: #79b8ff;--color-progressbar-leech-2: #044289;--color-progressbar-seed-paused-1: #bef5cb;--color-progressbar-seed-paused-2: #6a737d;--color-progressbar-seed-queued-1: #dcffe4;--color-progressbar-seed-queued-2: #85e89d;--color-progressbar-seed-1: #85e89d;--color-progressbar-seed-2: #176f2c;--color-tab-deselected-1: #f6f8fa;--color-tab-deselected-2: #959da5;--color-tab-selected-1: #e6dcfd;--color-tab-selected-2: #f5f0ff;--color-toolbar-background: linear-gradient(#d1d5da, #959da5)}@media(prefers-color-scheme: dark){:root{--color-fg-primary: #f6f8fa;--color-fg-secondary: #959da5;--color-fg-tertiary: #6a737d}}@media(prefers-color-scheme: light){:root{--color-fg-primary: #2f363d;--color-fg-secondary: #6a737d;--color-fg-tertiary: #959da5}}html,body{color:var(--color-fg-primary);font-family:Verdana,Arial,Helvetica,sans-serif;height:100%;margin:0;overflow:hidden}img{border:0}a{outline:0}.hidden{display:none}.even{background-color:var(--color-bg-even)}.odd{background-color:var(--color-bg-odd)}.mainwin{display:flex;flex-direction:column;height:100%;position:relative}.mainwin>*{margin:0;padding:0}.mainwin-workarea{display:flex;flex:1;flex-direction:row;overflow:auto}#mainwin-toolbar{align-items:center;background:var(--color-toolbar-background);border-bottom:1px solid var(--color-border);display:flex;flex-direction:row;height:36px;margin:0;padding:2px;width:100%}#mainwin-toolbar button{background-color:transparent;background-position:center;background-repeat:no-repeat;border:0;cursor:pointer;height:36px;margin-right:6px;user-select:none;width:36px}#mainwin-toolbar button:hover:not(:disabled){background-color:var(--color-bg-hover)}#mainwin-toolbar button:disabled{cursor:default;opacity:.25}#mainwin-toolbar>.toolbar-separator{border-left:1px solid var(--color-border);height:25px;margin:0 6px 0 0}#mainwin-toolbar :nth-last-child(2){border:0;flex-grow:1}#toolbar-open{background-image:url("+G+")}#toolbar-remove{background-image:url("+Y+")}#toolbar-start{background-image:url("+Q+")}#toolbar-pause{background-image:url("+Z+")}#toolbar-inspector{background-image:url("+W+")}#toolbar-overflow{background-color:transparent;background-image:url("+J+");background-position:center;background-size:26px;margin-right:4px;width:36px}#toolbar-overflow.alt-speed-enabled{background-image:url("+H+"),url("+J+");background-position:bottom left,center,center;background-size:16px 9px,26px,26px}.mainwin-filterbar{align-items:center;background:var(--color-toolbar-background);border-bottom:1px solid var(--color-border);display:flex;flex-direction:row;font-size:smaller;width:100%}@media(max-width: 599px){.mainwin-filterbar>:not(select):not(input){display:none}.mainwin-filterbar>input{min-width:50px}.mainwin-filterbar>input,.mainwin-filterbar>select{height:100%}}.mainwin-filterbar>*{padding:0 5px}#torrent-search.blur{color:var(--color-fg-tertiary)}.speed-up-icon{background-image:url("+q+");background-repeat:no-repeat;background-size:12px 12px;height:12px;width:12px}.speed-dn-icon{background-image:url("+V+");background-repeat:no-repeat;background-size:12px 12px;height:12px;width:12px}.flex{flex-grow:1}#torrent-container{flex-grow:1;left:0;margin:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:0;right:0}.torrent-container{background-color:#fff}.torrent-list{cursor:pointer;list-style-type:none;margin:0;padding:0;text-align:left;width:100%}.torrent-list .torrent{border-bottom:1px solid var(--color-border);color:var(--color-fg-secondary);user-select:none}.torrent-list .torrent.paused{color:var(--color-fg-disabled)}.torrent-list .torrent .icon{background-position:center,top left}.torrent-list .torrent .icon[data-icon-mime-type=audio]{background-image:url("+K+")}.torrent-list .torrent .icon[data-icon-mime-type=audio][data-icon-multifile=true]{background-image:url("+K+"),url("+X+")}.torrent-list .torrent .icon[data-icon-mime-type=application]{background-image:url("+$+")}.torrent-list .torrent .icon[data-icon-mime-type=application][data-icon-multifile=true]{background-image:url("+$+"),url("+X+")}.torrent-list .torrent .icon[data-icon-mime-type=font]{background-image:url("+ee+")}.torrent-list .torrent .icon[data-icon-mime-type=font][data-icon-multifile=true]{background-image:url("+ee+"),url("+X+")}.torrent-list .torrent .icon[data-icon-mime-type=image]{background-image:url("+te+")}.torrent-list .torrent .icon[data-icon-mime-type=image][data-icon-multifile=true]{background-image:url("+te+"),url("+X+")}.torrent-list .torrent .icon[data-icon-mime-type=model]{background-image:url("+ne+")}.torrent-list .torrent .icon[data-icon-mime-type=model][data-icon-multifile=true]{background-image:url("+ne+"),url("+X+")}.torrent-list .torrent .icon[data-icon-mime-type=text]{background-image:url("+re+")}.torrent-list .torrent .icon[data-icon-mime-type=text][data-icon-multifile=true]{background-image:url("+re+"),url("+X+")}.torrent-list .torrent .icon[data-icon-mime-type=video]{background-image:url("+oe+")}.torrent-list .torrent .icon[data-icon-mime-type=video][data-icon-multifile=true]{background-image:url("+oe+"),url("+X+')}.torrent-list .torrent.compact{align-items:center;display:flex;flex-direction:row-reverse}.torrent-list .torrent.compact .icon{background-size:16px,8px;flex-shrink:0;height:16px;width:16px}.torrent-list .torrent.compact>*{margin:4px 5px}.torrent-list .torrent:not(.compact){align-items:center;display:grid;grid-column-gap:12px;grid-template-areas:"icon name" "icon peers" "icon progressbar" "icon progress-text";grid-template-columns:32px 1fr;padding:2px 12px}.torrent-list .torrent:not(.compact) .icon{background-size:32px,16px;grid-area:icon;height:32px;width:32px}.torrent-list .torrent:not(.compact) .torrent-name{grid-area:name}.torrent-list .torrent:not(.compact) .torrent-peer-details{grid-area:peers}.torrent-list .torrent:not(.compact) .torrent-progress{display:flex;flex-direction:row;grid-area:progressbar}.torrent-list .torrent:not(.compact) .torrent-progress-details{grid-area:progress-text}.torrent-list .torrent:not(.compact)>*{margin:1px 0}.torrent-list .torrent.selected{background-color:var(--color-bg-selection-1)}.torrent-list .torrent.selected .torrent-progress-details.error,.torrent-list .torrent.selected .torrent-peer-details.error{color:#fff}.torrent-list .icon{background-position:center;background-repeat:no-repeat}.torrent-list .torrent-pauseresume-button{background-position:center center;background-repeat:no-repeat;background-size:14px;margin-left:7px;width:14px}.torrent-list .torrent-pauseresume-button[data-action=pause]{background-image:url('+se+")}.torrent-list .torrent-pauseresume-button[data-action=pause]:active,.torrent-list .torrent-pauseresume-button[data-action=pause]:hover{background-image:url("+ie+")}.torrent-list .torrent-pauseresume-button[data-action=resume]{background-image:url("+ae+")}.torrent-list .torrent-pauseresume-button[data-action=resume]:active,.torrent-list .torrent-pauseresume-button[data-action=resume]:hover{background-image:url("+le+")}.torrent-list .torrent-progress-details.error,.torrent-list .torrent-peer-details.error{color:var(--color-fg-error)}.torrent-list .torrent-name{font-weight:bold;margin-bottom:2px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.torrent-list .torrent-name.compact{flex:1;font-size:1em;font-weight:normal}.torrent-list .torrent-name:not(.paused){color:var(--color-fg-name)}.torrent-list .torrent-progress-details,.torrent-list .torrent-peer-details{font-size:x-small}.torrent-list .torrent-progress-bar{background-repeat:no-repeat;border-radius:3px;border-style:solid;border-width:1px;height:12px}.torrent-list .torrent-progress-bar.full{flex-grow:1;margin:2px 0}.torrent-list .torrent-progress-bar.compact{min-width:50px;width:50px}.torrent-list .torrent-progress-bar.leech.paused{background:linear-gradient(to bottom, var(--color-progressbar-leech-paused-1), var(--color-progressbar-leech-paused-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.leech.queued{background:linear-gradient(to bottom, var(--color-progressbar-leech-queued-1), var(--color-progressbar-leech-queued-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.leech{background:linear-gradient(to bottom, var(--color-progressbar-leech-1), var(--color-progressbar-leech-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.magnet.paused{background:linear-gradient(to bottom, var(--color-progressbar-magnet-paused-1), var(--color-progressbar-magnet-paused-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.magnet{background:linear-gradient(to bottom, var(--color-progressbar-magnet-1), var(--color-progressbar-magnet-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.seed.paused{background:linear-gradient(to bottom, var(--color-progressbar-seed-paused-1), var(--color-progressbar-seed-paused-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.seed.queued{background:linear-gradient(to bottom, var(--color-progressbar-seed-queued-1), var(--color-progressbar-seed-queued-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.seed{background:linear-gradient(to bottom, var(--color-progressbar-seed-1), var(--color-progressbar-seed-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}.torrent-list .torrent-progress-bar.verify{background:linear-gradient(to bottom, var(--color-progressbar-verify-1), var(--color-progressbar-verify-2) 80%),linear-gradient(to bottom, var(--color-progressbar-background-1), var(--color-progressbar-background-2) 80%);background-repeat:no-repeat}#inspector-tab-info{background-image:url("+de+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#inspector-tab-info:active,#inspector-tab-info:checked,#inspector-tab-info.selected{background-image:url("+de+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#inspector-tab-peers{background-image:url("+ce+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#inspector-tab-peers:active,#inspector-tab-peers:checked,#inspector-tab-peers.selected{background-image:url("+ce+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#inspector-tab-tiers{background-image:url("+Ae+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#inspector-tab-tiers:active,#inspector-tab-tiers:checked,#inspector-tab-tiers.selected{background-image:url("+Ae+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#inspector-tab-files{background-image:url("+pe+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#inspector-tab-files:active,#inspector-tab-files:checked,#inspector-tab-files.selected{background-image:url("+pe+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}@media(max-width: 599px){#inspector,#prefs-dialog{left:0}}@media(min-width: 600px){#inspector,#prefs-dialog{border-left:1px solid var(--color-fg-secondary);width:570px}}#prefs-dialog{background:#fff;bottom:0;box-shadow:0 3px 6px rgba(0,0,0,.7);position:absolute;right:0;top:61px;z-index:2}#prefs-dialog .tabs-page{grid-column-gap:8px;grid-row-gap:5px;grid-template-columns:1fr 1fr;margin:20px}#prefs-dialog .tabs-page:not(.hidden){display:grid}#prefs-dialog .tabs-page .section-label{font-weight:bold;grid-column:span 2;margin-left:-20px;padding-bottom:5px}#prefs-dialog .tabs-page .section-label:not(:first-of-type){margin-top:20px}#prefs-dialog .alt-speed-section-label{background:transparent url("+H+") no-repeat;background-position:left 4px;padding-left:22px}#prefs-dialog :disabled,#prefs-dialog .disabled{color:var(--color-fg-disabled)}#prefs-dialog #alt-times-div,#prefs-dialog #autostart-div,#prefs-dialog #port-forwarding,#prefs-dialog #randomize-port,#prefs-dialog #suffix-div,#prefs-dialog #use-dht-div,#prefs-dialog #use-lpd-div,#prefs-dialog #use-pex-div,#prefs-dialog #utp-enabled,#prefs-dialog .alt-speed-label{grid-column:span 2}#prefs-dialog .blocklist-size-label,#prefs-dialog .blocklist-update-button,#prefs-dialog .port-status{grid-column:2/3}#prefs-dialog .blocklist-size-label{font-size:smaller}#prefs-dialog .blocklist-size-number{font-weight:bolder}#prefs-dialog .port-status-label{display:inline-block;font-weight:bold;margin-left:5px}#prefs-dialog .port-status-label[data-open=true]{color:var(--color-fg-port-open)}#prefs-dialog .port-status-label[data-open=false]{color:var(--color-fg-port-closed)}#prefs-dialog .alt-speed-label{font-size:smaller;font-style:lighter;margin:-10px 0 10px -20px}#prefs-dialog.ui-tabs .ui-tabs-panel{padding:0;user-select:none}.prefs-section{text-align:left}.prefs-section>*{padding:0 8px 8px}.prefs-section .title{font-size:larger;font-weight:bold;padding-left:0}.prefs-section .row .key{float:left;padding-top:3px}.prefs-section .row .key>*{margin-left:0}.prefs-section .row .value{margin-left:150px}.prefs-section .row .value>*{width:100%}.prefs-section .checkbox-row>input{margin:0}.prefs-section .checkbox-row>label{margin-left:5px}.prefs-section #alternative-speed-limits-title{background:transparent url("+H+") no-repeat;padding-left:18px}.prefs-section #alternative-speed-limits-desc{font-size:smaller;padding-bottom:4px}.tabs-container{align-items:stretch;background:#fff;border-left:solid 1px var(--color-border);bottom:0;display:flex;flex-direction:column;position:absolute;right:0;top:61px;z-index:2}@media(max-width: 599px){.tabs-container{left:0}}@media(min-width: 600px){.tabs-container{width:550px}}.tabs-buttons{align-self:center;display:flex;padding:10px}.tabs-buttons button{border:1px solid var(--color-border);cursor:pointer;display:inline-block;padding:3px;user-select:none;appearance:none;padding:3px}.file-priority-radiobox :first-child,.tabs-buttons :first-child{border-bottom-left-radius:8px;border-top-left-radius:8px}.file-priority-radiobox :last-child,.tabs-buttons :last-child{border-bottom-right-radius:8px;border-top-right-radius:8px}.tabs-pages{box-sizing:border-box;flex:1;overflow-x:hidden;overflow-y:auto}@media(max-width: 599px){.tabs-pages{padding:0 8px 20px}}@media(min-width: 600px){.tabs-pages{padding:0 20px 20px}}.tabs-button{background-position:center;background-repeat:no-repeat}#inspector{box-shadow:0 3px 6px rgba(0,0,0,.7)}.inspector-info-page{grid-column-gap:8px;grid-row-gap:5px;grid-template-columns:auto 1fr;margin:20px;padding:12px}.inspector-info-page:not(.hidden){display:grid}.inspector-info-page .section-label{font-weight:bold;grid-column:span 2;margin-left:-20px;padding-bottom:5px}.inspector-info-page .section-label:not(:first-of-type){margin-top:20px}.inspector-info-page :not(.section-label){overflow-x:hidden;text-overflow:ellipsis}#inspector .tabs-button,#prefs-dialog .tabs-button{background-size:20px 20px,40px 30px;height:30px;margin:0;padding:0;width:40px}#prefs-tab-torrent{background-image:url("+ue+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#prefs-tab-torrent:active,#prefs-tab-torrent:checked,#prefs-tab-torrent.selected{background-image:url("+ue+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#prefs-tab-speed{background-image:url("+ge+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#prefs-tab-speed:active,#prefs-tab-speed:checked,#prefs-tab-speed.selected{background-image:url("+ge+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#prefs-tab-peers{background-image:url("+ce+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#prefs-tab-peers:active,#prefs-tab-peers:checked,#prefs-tab-peers.selected{background-image:url("+ce+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#prefs-tab-network{background-image:url("+me+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}#prefs-tab-network:active,#prefs-tab-network:checked,#prefs-tab-network.selected{background-image:url("+me+'),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}#inspector-file-list{margin:0;padding:0}#inspector-file-list .inspector-torrent-file-list-entry{display:grid;grid-column-gap:5px;grid-template-areas:"check name priority" "blank1 info blank2";grid-template-columns:20px 1fr 65px;margin-bottom:4px;padding:5px}#inspector-file-list .inspector-torrent-file-list-entry.skip{opacity:.5}#inspector-file-list .file-wanted-control{grid-area:check}#inspector-file-list .inspector-torrent-file-list-entry-name{color:var(--color-fg-name);cursor:pointer;grid-area:name;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#inspector-file-list .inspector-torrent-file-list-entry.skip>.inspector-torrent-file-list-entry-name{color:var(--color-fg-disabled)}#inspector-file-list .inspector-torrent-file-list-entry-progress{color:var(--color-fg-secondary);grid-area:info}#inspector-file-list .single-file .inspector-torrent-file-list-entry>.file-wanted-control,#inspector-file-list .inspector-torrent-file-list-entry.complete>.file-wanted-control{cursor:default}#inspector-header{margin:8px 0}#torrent-inspector-name{font-size:large;font-weight:bold}#inspector-tiers-list{color:var(--color-fg-secondary);margin:0 10px;padding:0 12px}#inspector-tiers-list .tier-list-row{display:grid;grid-column-gap:8px;grid-row-gap:4px;margin-top:8px}#inspector-tiers-list .tier-list-torrent{color:var(--color-fg-primary);font-size:larger;font-weight:bolder;margin-left:-12px;overflow-x:hidden;padding-top:20px;text-overflow:ellipsis;white-space:nowrap}#inspector-tiers-list .tier-list-tracker{font-weight:bolder;grid-column:span 2;margin-top:8px;padding-bottom:4px}#inspector-tiers-list .tier-announce,#inspector-tiers-list .tier-scrape,#inspector-tiers-list .tier-state{text-align:left}#inspector-tiers-list .tier-downloads,#inspector-tiers-list .tier-leechers,#inspector-tiers-list .tier-seeders{text-align:right}.peer-list{border:1px solid #f6f8fa;border-collapse:collapse;cursor:default;table-layout:fixed;text-align:left;width:100%}.peer-list td,.peer-list th{font-size:smaller;padding:5px}.peer-list td{border:1px solid #f6f8fa;color:var(--color-fg-secondary)}.peer-list .torrent-row td{background:#f6f8fa;color:var(--color-fg-primary);font-size:normal;font-weight:bolder;overflow-x:hidden;padding:10px;text-overflow:ellipsis;white-space:nowrap}.peer-list .encryption{width:16px}.peer-list .encryption[data-encrypted=true]{background:transparent url('+he+") center center no-repeat;height:16px;width:16px}.peer-list .peer-address,.peer-list .percent-done,.peer-list .speed-down,.peer-list .speed-up{text-align:right}.peer-list .percent-done{width:10%}.peer-list .speed-down,.peer-list .speed-up{width:15%}.peer-list .peer-address{width:25%}.peer-list .peer-app-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width: 599px){.peer-list .peer-app-name{display:none}}@media(min-width: 600px){.peer-list .peer-app-name{width:25%}}.peer-list .status{cursor:pointer}.file-priority-radiobox{grid-area:priority}.file-priority-radiobox>*{border:1px solid var(--color-border);cursor:pointer;display:inline-block;padding:3px;user-select:none;appearance:none;background-position:center;background-repeat:no-repeat;background-size:10px,20px;height:20px;margin:0;padding:0;width:20px}.file-priority-radiobox>.low{background-image:url("+V+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2));border-right-width:0}.file-priority-radiobox>.low:active,.file-priority-radiobox>.low:checked,.file-priority-radiobox>.low.selected{background-image:url("+V+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}.file-priority-radiobox>.normal{background-image:url("+fe+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2))}.file-priority-radiobox>.normal:active,.file-priority-radiobox>.normal:checked,.file-priority-radiobox>.normal.selected{background-image:url("+fe+"),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}.file-priority-radiobox>.high{background-image:url("+q+"),linear-gradient(var(--color-tab-deselected-1), var(--color-tab-deselected-2));border-left-width:0}.file-priority-radiobox>.high:active,.file-priority-radiobox>.high:checked,.file-priority-radiobox>.high.selected{background-image:url("+q+'),linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2))}.context-menu{background:var(--color-bg-menu);box-shadow:0 3px 6px rgba(0,0,0,.7);position:absolute;z-index:2}.context-menu .context-menuitem{list-style:none;padding:5px 10px}.context-menu .context-menuitem:hover:not(:disabled),.context-menu .context-menuitem:focus:not(:disabled){background-image:linear-gradient(#fff, var(--color-bg-menu));cursor:pointer}.context-menu .context-menuitem:disabled{color:var(--color-fg-disabled);cursor:none}.context-menu-separator{border-bottom:1px solid var(--color-fg-secondary);margin-bottom:10px;padding-bottom:10px}.overflow-menu{background:linear-gradient(160deg, #d21, 1%, var(--color-bg-hover), 40%, var(--color-bg-menu));border-radius:8px;box-shadow:0 3px 6px rgba(0,0,0,.7);padding:20px;position:fixed;width:200px;z-index:2}.overflow-menu fieldset{border:0;margin-bottom:8px;padding:0}.overflow-menu>.actions,.overflow-menu>.info,.overflow-menu>.links{display:flex;flex-direction:column}.overflow-menu legend{font-weight:bolder;margin-bottom:4px}.overflow-menu legend~*{margin-left:12px}.overflow-menu a,.overflow-menu button,.overflow-menu label{color:var(--color-fg-primary);font-size:1em}.overflow-menu a:disabled,.overflow-menu button:disabled,.overflow-menu label:disabled{color:var(--color-fg-disabled);cursor:default}.overflow-menu a:focus:not(:disabled),.overflow-menu a:hover:not(:disabled),.overflow-menu button:focus:not(:disabled),.overflow-menu button:hover:not(:disabled),.overflow-menu label:focus:not(:disabled),.overflow-menu label:hover:not(:disabled){background-color:var(--color-bg-hover)}.overflow-menu a,.overflow-menu button{background:transparent;border:0;cursor:pointer;display:block;padding:4px 0;text-align:left;text-decoration:none;width:150px}.overflow-menu .input-and-label{align-items:center;display:inline-flex;flex-direction:row}.overflow-menu #display-options>*{align-items:center;display:inline-flex;flex-direction:row}.overflow-menu #display-options>*>*{margin:4px}.overflow-menu #display-options>* :first-child{margin-left:0}.overflow-menu #display-options>* :last-child{margin-right:0}.overflow-menu #speed-options{display:flex;flex-direction:column}.overflow-menu #speed-options>.speed-up,.overflow-menu #speed-options>.speed-down{align-items:center;display:flex;flex-direction:row;padding:4px 0}.overflow-menu #speed-options>.speed-up>label,.overflow-menu #speed-options>.speed-down>label{overflow:hidden;width:80px}.overflow-menu #speed-options .alt-speed{display:grid;grid-column-gap:5px;grid-row-gap:5px;grid-template-areas:"check lb" "turtle values";grid-template-columns:20px 1fr;margin-bottom:4px}.overflow-menu #speed-options #alt-speed-check{grid-area:check}.overflow-menu #speed-options #alt-speed-check:checked~#alt-speed-image{background-image:url('+H+")}.overflow-menu #speed-options #alt-speed-check:not(:checked)~#alt-speed-image{background-image:url("+be+')}.overflow-menu #speed-options #alt-speed-image{background-position:center;background-repeat:no-repeat;grid-area:turtle}.overflow-menu #speed-options #alt-speed-label{grid-area:lb}.overflow-menu #speed-options #alt-speed-values-label{font-size:small;grid-area:values}@media(min-width: 600px){#display-fullscreen-check,#display-fullscreen-label{display:none}}@media(max-width: 599px){.dialog-buttons{padding-top:13.3333333333px}.dialog-container{opacity:96%;position:absolute;top:61px;width:100%}.dialog-logo{padding-bottom:13.3333333333px}.dialog-window{align-items:center;display:flex;flex-direction:column}}@media(min-width: 600px){.dialog-container{left:50%;min-width:400px;position:absolute;top:122px;transform:translateX(-50%)}.dialog-heading{grid-area:heading}.dialog-logo{grid-area:icon;padding-right:13.3333333333px}.dialog-window{display:grid;grid-column-gap:12px;grid-template-areas:"icon heading" "icon message" "icon workarea" "icon buttons";grid-template-columns:64px 1fr;padding:2px 12px}}.dialog-buttons{display:flex;float:right;grid-area:buttons;margin:10px 0 0;text-align:center}.dialog-buttons button{appearance:none;background:transparent;border:1px solid var(--color-border);border-radius:5px;color:var(--color-fg-name);margin-left:8px;padding:8px;text-decoration:none}.dialog-buttons a:hover,.dialog-buttons a:active{background:linear-gradient(#fff, var(--color-bg-menu))}.dialog-buttons-begin{flex-grow:1}.dialog-buttons-end{display:none}.dialog-container{border:0;box-shadow:0 3px 6px rgba(0,0,0,.7);color:var(--color-fg-primary);display:block;margin:0;padding:0;z-index:2}.dialog-heading{align-items:center;display:flex;font-size:1.2em;font-weight:bold}.dialog-logo{background:transparent url('+Ce+") top left no-repeat;height:64px;width:64px}.dialog-message{grid-area:message;margin:10px 0 0}.dialog-window{background:linear-gradient(160deg, #d21, 1%, #f7f7f7, 40%, #ccc);height:100%;padding:20px}.dialog-workarea{display:flex;flex-direction:column;grid-area:workarea;margin:10px 0 0}.dialog-workarea>*{margin-bottom:5px}.about-dialog .dialog-workarea>*{margin-bottom:10px}.about-dialog-version-number{margin-left:4px}.about-dialog-version-checksum{font-size:small;font-style:italic;font-weight:normal;margin-left:auto;padding-left:10px}.shortcuts-dialog table{border-collapse:collapse;width:100%}.shortcuts-dialog th,.shortcuts-dialog td{border:1px solid var(--color-border);padding:5px 10px}#torrent-rename-name{min-width:400px}#move-container #torrent-path{min-width:400px}.tabs-pages .content,.inspector-info-page .content,.statistics-dialog .content{column-gap:16px;display:grid;grid-row-gap:6px;grid-template-columns:auto 1fr;margin-top:4px}@media(max-width: 599px){.tabs-pages .content,.inspector-info-page .content,.statistics-dialog .content{margin:4px 0 16px}}@media(min-width: 600px){.tabs-pages .content,.inspector-info-page .content,.statistics-dialog .content{margin:4px 16px 16px}}.tabs-pages .content div,.inspector-info-page .content div,.statistics-dialog .content div{word-break:break-word}.tabs-pages fieldset,.inspector-info-page fieldset,.statistics-dialog fieldset{border:0;margin:0;padding:0}.tabs-pages legend,.inspector-info-page legend,.statistics-dialog legend{font-weight:bolder;margin-bottom:4px}#free-space-text{display:inline-block;float:right;font-size:smaller;font-style:italic}#torrent-upload-frame{border:0;display:block;height:0;left:-1000px;margin:0;padding:0;position:absolute;top:-1000px;width:0}.ui-menu{width:200px}","",{version:3,sources:["webpack://./style/transmission-app.scss"],names:[],mappings:"AA6FA,MACE,qBAAA,CACA,yBAAA,CACA,wBAAA,CACA,uBAAA,CACA,+BAAA,CACA,+BAAA,CACA,uBAAA,CACA,4BAAA,CACA,yBAAA,CACA,wBAAA,CACA,+BAAA,CACA,6BAAA,CAWA,yCAAA,CACA,yCAAA,CACA,qCAAA,CACA,qCAAA,CACA,qCAAA,CACA,qCAAA,CACA,4CAAA,CACA,4CAAA,CACA,2CAAA,CACA,2CAAA,CACA,2CAAA,CACA,2CAAA,CACA,oCAAA,CACA,oCAAA,CACA,0CAAA,CACA,0CAAA,CACA,0CAAA,CACA,0CAAA,CACA,mCAAA,CACA,mCAAA,CACA,iCAAA,CACA,iCAAA,CACA,+BAAA,CACA,+BAAA,CACA,6DAAA,CAlCA,mCAbF,MAcI,2BAAA,CACA,6BAAA,CACA,4BAAA,CAAA,CAEF,oCAlBF,MAmBI,2BAAA,CACA,6BAAA,CACA,4BAAA,CAAA,CA6BJ,UAEE,6BAAA,CACA,8CAAA,CACA,WAAA,CACA,QAAA,CACA,eAAA,CAGF,IACE,QAAA,CAGF,EACE,SAAA,CAGF,QACE,YAAA,CAGF,MACE,qCAAA,CAEF,KACE,oCAAA,CAGF,SACE,YAAA,CACA,qBAAA,CACA,WAAA,CACA,iBAAA,CAEA,WACE,QAAA,CACA,SAAA,CAIJ,kBACE,YAAA,CACA,MAAA,CACA,kBAAA,CACA,aAAA,CAQF,iBACE,kBAAA,CACA,0CAAA,CACA,2CAAA,CACA,YAAA,CACA,kBAAA,CACA,WARe,CASf,QAAA,CACA,WAAA,CACA,UAAA,CAEA,wBACE,4BAAA,CACA,0BAAA,CACA,2BAAA,CACA,QAAA,CACA,cAAA,CACA,WAnBa,CAoBb,gBAAA,CACA,gBAAA,CACA,UAtBa,CAwBb,6CACE,sCAAA,CAGF,iCACE,cAAA,CACA,WAAA,CAIJ,oCACE,yCAAA,CACA,WAAA,CACA,gBAAA,CAGF,oCACE,QAAA,CACA,WAAA,CAIJ,cACE,wDAAA,CAGF,gBACE,wDAAA,CAGF,eACE,wDAAA,CAGF,eACE,wDAAA,CAGF,mBACE,wDAAA,CAGF,kBACE,4BAAA,CACA,wDAAA,CACA,0BAAA,CACA,oBAAA,CACA,gBAAA,CACA,UAAA,CAEA,oCACE,gGAAA,CACA,6CAAA,CACA,kCAAA,CASJ,mBACE,kBAAA,CACA,0CAAA,CACA,2CAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CAEA,UAAA,CAxOA,yBA2OE,2CACE,YAAA,CAEF,yBACE,cAAA,CAEF,mDAEE,WAAA,CAAA,CAIJ,qBACE,aAAA,CAKF,qBACE,8BAAA,CAMJ,eACE,wDAAA,CACA,2BAAA,CACA,yBAAA,CACA,WANgB,CAOhB,UAPgB,CAUlB,eACE,wDAAA,CACA,2BAAA,CACA,yBAAA,CACA,WAdgB,CAehB,UAfgB,CA0BlB,MACE,WAAA,CAGF,mBACE,WAAA,CACA,MAAA,CACA,QAAA,CACA,aAAA,CACA,gCAAA,CACA,SAAA,CACA,OAAA,CAGF,mBACE,qBAxUM,CA2UR,cAWE,cAAA,CACA,oBAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,UAAA,CAEA,uBACE,2CAAA,CACA,+BAAA,CACA,gBAAA,CAEA,8BACE,8BAAA,CAGF,6BACE,mCAAA,CAUA,wDAPE,wDAAA,CAEA,kFACE,iGAAA,CAQJ,8DAXE,yDAAA,CAEA,wFACE,kGAAA,CAYJ,uDAfE,yDAAA,CAEA,iFACE,kGAAA,CAgBJ,wDAnBE,yDAAA,CAEA,kFACE,kGAAA,CAoBJ,wDAvBE,yDAAA,CAEA,kFACE,kGAAA,CAwBJ,uDA3BE,yDAAA,CAEA,iFACE,kGAAA,CA4BJ,wDA/BE,yDAAA,CAEA,kFACE,kGAAA,CAiCN,+BAIE,kBAAA,CACA,YAAA,CACA,0BAAA,CAEA,qCACE,wBAAA,CACA,aAAA,CACA,WATU,CAUV,UAVU,CAaZ,iCACE,cAAA,CAIJ,qCAGE,kBAAA,CACA,YAAA,CACA,oBAAA,CACA,oFACE,CAIF,8BAAA,CACA,gBAAA,CAEA,2CACE,yBAAA,CACA,cAAA,CACA,WAfU,CAgBV,UAhBU,CAmBZ,mDACE,cAAA,CAGF,2DACE,eAAA,CAGF,uDACE,YAAA,CACA,kBAAA,CACA,qBAAA,CAGF,+DACE,uBAAA,CAGF,uCACE,YAAA,CAIJ,gCACE,4CAAA,CAGF,4HAEE,UApdE,CAwdN,oBACE,0BAAA,CACA,2BAAA,CAGF,0CACE,iCAAA,CACA,2BAAA,CACA,oBA5Ke,CA6Kf,eAAA,CACA,UA9Ke,CAgLf,6DACE,yDAAA,CACA,uIAEE,yDAAA,CAGJ,8DACE,yDAAA,CACA,yIAEE,yDAAA,CAKN,wFAEE,2BAAA,CAGF,4BACE,gBAAA,CACA,iBAAA,CACA,cAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAEA,oCACE,MAAA,CACA,aAAA,CACA,kBAAA,CAGF,yCACE,0BAAA,CAIJ,4EAEE,iBAAA,CAGF,oCACE,2BAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBAAA,CACA,WAAA,CAGA,yCACE,WAAA,CACA,YAAA,CAEF,4CACE,cAAA,CACA,UAAA,CAgBF,iDARE,wOAAA,CAKA,2BAAA,CASF,iDAdE,wOAAA,CAKA,2BAAA,CAeF,0CApBE,0NAAA,CAKA,2BAAA,CAqBF,kDA1BE,0OAAA,CAKA,2BAAA,CA2BF,2CAhCE,4NAAA,CAKA,2BAAA,CAiCF,gDAtCE,sOAAA,CAKA,2BAAA,CAuCF,gDA5CE,sOAAA,CAKA,2BAAA,CA6CF,yCAlDE,wNAAA,CAKA,2BAAA,CAmDF,2CAxDE,4NAAA,CAKA,2BAAA,CA6EN,oBAdE,uIAAA,CAMA,oFAGE,mIAAA,CASJ,qBAlBE,uIAAA,CAMA,uFAGE,mIAAA,CAaJ,qBAtBE,uIAAA,CAMA,uFAGE,mIAAA,CAiBJ,qBA1BE,uIAAA,CAMA,uFAGE,mIAAA,CAvlBF,yBA4mBF,yBAGI,MAAA,CAAA,CA1mBF,yBAumBF,yBAMI,+CAAA,CACA,WAAA,CAAA,CAIJ,cAGE,eAvpBM,CAwpBN,QAAA,CACA,mCAAA,CACA,iBAAA,CACA,OAAA,CACA,QArWU,CAsWV,SAtpBc,CAwpBd,yBACE,mBAAA,CACA,gBAAA,CACA,6BAAA,CACA,WAAA,CAEA,sCACE,YAAA,CAGF,wCACE,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,kBAAA,CAEA,4DACE,eAAA,CAKN,uCACE,wEAAA,CACA,4BAAA,CACA,iBAAA,CAGF,gDAEE,8BAAA,CAGF,4RAUE,kBAAA,CAGF,sGAGE,eAAA,CAGF,oCACE,iBAAA,CAEF,qCACE,kBAAA,CAGF,iCACE,oBAAA,CACA,gBAAA,CACA,eAAA,CACA,iDACE,+BAAA,CAEF,kDACE,iCAAA,CAIJ,+BACE,iBAAA,CACA,kBAAA,CAEA,yBAAA,CAIJ,qCACE,SAAA,CACA,gBAAA,CAGF,eACE,eAAA,CAEA,iBACE,iBAAA,CAGF,sBACE,gBAAA,CACA,gBAAA,CACA,cAAA,CAIA,yBACE,UAAA,CACA,eAAA,CAEA,2BACE,aAAA,CAIJ,2BACE,iBAAA,CAEA,6BACE,UAAA,CAMJ,mCACE,QAAA,CAGF,mCACE,eAAA,CAIJ,+CACE,wEAAA,CACA,iBAAA,CAGF,8CACE,iBAAA,CACA,kBAAA,CAMJ,gBACE,mBAAA,CACA,eA5yBM,CA6yBN,yCAAA,CACA,QAAA,CACA,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,OAAA,CACA,QA5fU,CA6fV,SA7yBc,CAsBd,yBA6wBF,gBAYI,MAAA,CAAA,CApxBF,yBAwwBF,gBAeI,WAAA,CAAA,CAIJ,cACE,iBAAA,CACA,YAAA,CACA,YAAA,CAEA,qBAjxBA,oCAAA,CACA,cAAA,CACA,oBAAA,CACA,WAAA,CACA,gBAAA,CA+wBE,eAAA,CACA,WAAA,CAOF,gEACE,6BAFO,CAGP,0BAHO,CAKT,8DACE,8BANO,CAOP,2BAPO,CAWX,YACE,qBAAA,CACA,MAAA,CACA,iBAAA,CACA,eAAA,CA7zBA,yBAyzBF,YAMI,kBAAA,CAAA,CA1zBF,yBAozBF,YASI,mBAAA,CAAA,CAIJ,aACE,0BAAA,CACA,2BAAA,CAKF,WACE,mCAAA,CAGF,qBAIE,mBAAA,CACA,gBAAA,CACA,8BAAA,CACA,WAAA,CACA,YAAA,CAEA,kCACE,YAAA,CAGF,oCACE,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,kBAAA,CAEA,wDACE,eAAA,CAIJ,0CAEE,iBAAA,CACA,sBAAA,CAIJ,mDAEE,mCAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CAGF,mBA5SE,uIAAA,CAMA,iFAGE,mIAAA,CAuSJ,iBAhTE,uIAAA,CAMA,2EAGE,mIAAA,CA2SJ,iBApTE,uIAAA,CAMA,2EAGE,mIAAA,CA+SJ,mBAxTE,uIAAA,CAMA,iFAGE,mIAAA,CAmTJ,qBACE,QAAA,CACA,SAAA,CAEA,wDACE,YAAA,CACA,mBAAA,CACA,mEACE,CAEF,mCAAA,CACA,iBAAA,CACA,WAAA,CAEA,6DACE,UAAA,CAIJ,0CACE,eAAA,CAGF,6DACE,0BAAA,CACA,cAAA,CACA,cAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAGF,qGAEE,8BAAA,CAGF,iEACE,+BAAA,CACA,cAAA,CAGF,gLAEE,cAAA,CAIJ,kBACE,YAAA,CAGF,wBACE,eAAA,CACA,gBAAA,CAGF,sBACE,+BAAA,CACA,aAAA,CACA,cAAA,CAEA,qCACE,YAAA,CACA,mBAAA,CACA,gBAAA,CACA,cAAA,CAGF,yCACE,6BAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,iBAAA,CACA,gBAAA,CACA,sBAAA,CACA,kBAAA,CAGF,yCACE,kBAAA,CACA,kBAAA,CACA,cAAA,CACA,kBAAA,CAGF,0GAGE,eAAA,CAGF,+GAGE,gBAAA,CAMJ,WAIE,wBAFe,CAGf,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,UAAA,CAEA,4BAEE,iBAAA,CACA,WAAA,CAGF,cACE,wBAhBa,CAiBb,+BAAA,CAIF,2BACE,kBAhjCO,CAijCP,6BAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CAGF,uBACE,UAAA,CACA,4CACE,uFAAA,CACA,WAAA,CACA,UAAA,CAIJ,8FAIE,gBAAA,CAGF,yBACE,SAAA,CAEF,4CAEE,SAAA,CAEF,yBACE,SAAA,CAGF,0BACE,iBAAA,CACA,sBAAA,CACA,kBAAA,CAhjCF,yBA6iCA,0BAKI,YAAA,CAAA,CA7iCJ,yBAwiCA,0BAQI,SAAA,CAAA,CAIJ,mBACE,cAAA,CAMJ,wBAKE,kBAAA,CAEA,0BAnjCA,oCAAA,CACA,cAAA,CACA,oBAAA,CACA,WAAA,CACA,gBAAA,CAijCE,eAAA,CACA,0BAAA,CACA,2BAAA,CACA,yBAAA,CACA,WAXK,CAYL,QAAA,CACA,SAAA,CACA,UAdK,CAiBP,6BArgBA,sIAAA,CAugBE,oBAAA,CAjgBF,+GAGE,kIAAA,CAigBF,gCA1gBA,uIAAA,CAMA,wHAGE,mIAAA,CAqgBF,8BA9gBA,sIAAA,CAghBE,mBAAA,CA1gBF,kHAGE,kIAAA,CA6gBJ,cAIE,+BAHmB,CAInB,mCAAA,CACA,iBAAA,CACA,SAjoCc,CAmoCd,gCACE,eAAA,CACA,gBAAA,CAEA,0GAEE,4DAAA,CACA,cAAA,CAGF,yCACE,8BAlBa,CAmBb,WAAA,CAKN,wBACE,iDAAA,CACA,kBAAA,CACA,mBAAA,CAKF,eACE,8FAAA,CAQA,iBAAA,CACA,mCAAA,CACA,YAAA,CACA,cAAA,CACA,WAAA,CACA,SA1qCc,CA4qCd,wBACE,QAAA,CACA,iBAAA,CACA,SAAA,CAGF,mEAGE,YAAA,CACA,qBAAA,CAGF,sBACE,kBAAA,CACA,iBAAA,CAGF,wBACE,gBAAA,CAGF,4DAGE,6BAAA,CACA,aAAA,CAEA,uFACE,8BAAA,CACA,cAAA,CAGF,sPAEE,sCAAA,CAIJ,uCAEE,sBAAA,CACA,QAAA,CACA,cAAA,CACA,aAAA,CACA,aAAA,CACA,eAAA,CACA,oBAAA,CACA,WAAA,CAGF,gCACE,kBAAA,CACA,mBAAA,CACA,kBAAA,CAIA,kCACE,kBAAA,CACA,mBAAA,CACA,kBAAA,CAEA,oCACE,UAAA,CAGF,+CACE,aAAA,CAGF,8CACE,cAAA,CAKN,8BACE,YAAA,CACA,qBAAA,CAEA,kFAEE,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,aAAA,CAEA,8FACE,eAAA,CACA,UAAA,CAIJ,yCACE,YAAA,CACA,mBAAA,CACA,gBAAA,CACA,iDACE,CAEF,8BAAA,CACA,iBAAA,CAGF,+CACE,eAAA,CAEA,wEACE,wDAAA,CAGF,8EACE,yDAAA,CAIJ,+CACE,0BAAA,CACA,2BAAA,CACA,gBAAA,CAGF,+CACE,YAAA,CAGF,sDACE,eAAA,CACA,gBAAA,CAlxCJ,yBAyxCA,oDAEE,YAAA,CAAA,CAhyCF,yBA2yCA,gBACE,2BAAA,CAGF,kBACE,WAAA,CACA,iBAAA,CACA,QAxhCQ,CAyhCR,UAAA,CAGF,aACE,8BAAA,CAGF,eACE,kBAAA,CACA,YAAA,CACA,qBAAA,CAAA,CAxzCF,yBA4zCA,kBACE,QAAA,CACA,eAAA,CACA,iBAAA,CACA,SAAA,CACA,0BAAA,CAGF,gBACE,iBAAA,CAGF,aACE,cAAA,CACA,6BAAA,CAGF,eACE,YAAA,CACA,oBAAA,CACA,gFACE,CAIF,8BAAA,CACA,gBAAA,CAAA,CAIJ,gBACE,YAAA,CACA,WAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CAEA,uBACE,eAAA,CACA,sBAAA,CACA,oCAAA,CACA,iBAAA,CACA,0BAAA,CACA,eAAA,CACA,WAAA,CACA,oBAAA,CAGF,iDAEE,sDAAA,CAIJ,sBACE,WAAA,CAGF,oBACE,YAAA,CAGF,kBACE,QAAA,CACA,mCAAA,CACA,6BAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,SA55Cc,CA+5ChB,gBACE,kBAAA,CACA,YAAA,CACA,eAAA,CACA,gBAAA,CAGF,aACE,kFAAA,CACA,WA1GU,CA2GV,UA3GU,CA8GZ,gBACE,iBAAA,CACA,eAAA,CAGF,eACE,gEAAA,CACA,WAAA,CACA,YAAA,CAGF,iBACE,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,eAAA,CAEA,mBACE,iBAAA,CAMJ,iCACE,kBAAA,CAGF,6BACE,eAAA,CAGF,+BACE,eAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBAAA,CACA,iBAAA,CAMA,wBACE,wBAAA,CACA,UAAA,CAGF,0CAEE,oCAAA,CACA,gBAAA,CAMJ,qBACE,eAAA,CAKF,8BACE,eAAA,CAQA,+EACE,eAAA,CACA,YAAA,CACA,gBAAA,CACA,8BAAA,CACA,cAAA,CAn+CF,yBA89CA,+EAQI,iBAAA,CAAA,CAj+CJ,yBAy9CA,+EAWI,oBAAA,CAAA,CAGF,2FACE,qBAAA,CAIJ,+EACE,QAAA,CACA,QAAA,CACA,SAAA,CAGF,yEACE,kBAAA,CACA,iBAAA,CAMJ,iBACE,oBAAA,CACA,WAAA,CACA,iBAAA,CACA,iBAAA,CAGF,sBACE,QAAA,CACA,aAAA,CACA,QAAA,CACA,YAAA,CACA,QAAA,CACA,SAAA,CACA,iBAAA,CACA,WAAA,CACA,OAAA,CAGF,SACE,WAAA",sourcesContent:["@use 'sass:color';\n@use 'sass:math';\n\n// Color palette recycled from GitHub Primer.\n// Please use those values if you need to add colors.\n// https://primer.style/css/support/color-system\n$blue-100: #dbedff;\n$blue-200: #c8e1ff;\n$blue-300: #79b8ff;\n$blue-700: #044289;\n$green-100: #dcffe4;\n$green-200: #bef5cb;\n$green-300: #85e89d;\n$green-500: #28a745;\n$green-700: #176f2c;\n$grey-100: #f6f8fa;\n$grey-200: #e1e4e8;\n$grey-300: #d1d5da;\n$grey-400: #959da5;\n$grey-500: #6a737d;\n$grey-800: #2f363d;\n$pink-300: #f692ce;\n$pink-700: #b93a86;\n$purple-000: #f5f0ff;\n$purple-100: #e6dcfd;\n$red-500: #d73a49;\n$white: #fff;\n$yellow-200: #fff5b1;\n$yellow-300: #ffea7f;\n$yellow-700: #dbab09;\n\n// Z-INDEX ENUM\n// $z-index-progressbar: 1;\n$z-index-popup: 2;\n\n// SVG ICONS -- see images/README.md for sources and license details\n// Are you a designer? New icon PRs welcomed!\n$image-analytics: 'images/analytics.svg';\n$image-baseline: 'images/horizontal-rule.svg';\n$image-files: 'images/files.svg';\n$image-chevron-dn: 'images/chevron-down.svg';\n$image-chevron-up: 'images/chevron-up.svg';\n$image-lock-fill: 'images/lock-fill.svg';\n$image-network: 'images/router.svg';\n$image-overflow: 'images/three-dots-vertical.svg';\n$image-pause-circle-active: 'images/pause-circle-active.svg';\n$image-pause-circle-idle: 'images/pause-circle-idle.svg';\n$image-peers: 'images/team.svg';\n$image-play-circle-active: 'images/play-circle-active.svg';\n$image-play-circle-idle: 'images/play-circle-idle.svg';\n$image-speed: 'images/checkered-flag.svg';\n$image-tiers: 'images/diagram-3-fill.svg';\n$image-upload-download: 'images/up-and-down-arrows.svg';\n\n@mixin for-phone-only {\n @media (max-width: 599px) {\n @content;\n }\n}\n@mixin for-tablet-portrait-up {\n @media (min-width: 600px) {\n @content;\n }\n}\n// @mixin for-tablet-landscape-up {media (min-width: 900px) { @content; }}\n// @mixin for-desktop-up {@media (min-width: 1200px) { @content; }}\n// @mixin for-big-desktop-up {@media (min-width: 1800px) { @content; }}\n\n/// MIXINS\n\n@mixin image-on-vertical-gradient($src, $topColor, $bottomColor) {\n background-image: url($src), linear-gradient($topColor, $bottomColor);\n}\n\n@mixin button {\n border: 1px solid var(--color-border);\n cursor: pointer;\n display: inline-block;\n padding: 3px;\n user-select: none;\n}\n\n@mixin rounded-box($radius) {\n border-radius: $radius;\n}\n\n@mixin rounded-button($radius) {\n @include button;\n border-radius: $radius;\n}\n\n/// GLOBAL\n\n:root {\n --color-bg-even: #{$white};\n --color-bg-hover: #{$grey-100};\n --color-bg-menu: #{$grey-200};\n --color-bg-odd: #{$grey-100};\n --color-bg-selection-1: #{$purple-100};\n --color-bg-selection-2: #{$purple-000};\n --color-border: #{$grey-400};\n --color-fg-disabled: #{$grey-400};\n --color-fg-error: #{$red-500};\n --color-fg-name: #{$grey-800};\n --color-fg-port-closed: #{$red-500};\n --color-fg-port-open: #{$green-500};\n @media (prefers-color-scheme: dark) {\n --color-fg-primary: #{$grey-100};\n --color-fg-secondary: #{$grey-400};\n --color-fg-tertiary: #{$grey-500};\n }\n @media (prefers-color-scheme: light) {\n --color-fg-primary: #{$grey-800};\n --color-fg-secondary: #{$grey-500};\n --color-fg-tertiary: #{$grey-400};\n }\n --color-progressbar-background-1: #{$grey-100};\n --color-progressbar-background-2: #{$grey-400};\n --color-progressbar-verify-1: #{$pink-300};\n --color-progressbar-verify-2: #{$pink-700};\n --color-progressbar-magnet-1: #{$yellow-300};\n --color-progressbar-magnet-2: #{$yellow-700};\n --color-progressbar-magnet-paused-1: #{$yellow-200};\n --color-progressbar-magnet-paused-2: #{$grey-500};\n --color-progressbar-leech-paused-1: #{$blue-200};\n --color-progressbar-leech-paused-2: #{$grey-500};\n --color-progressbar-leech-queued-1: #{$blue-100};\n --color-progressbar-leech-queued-2: #{$blue-300};\n --color-progressbar-leech-1: #{$blue-300};\n --color-progressbar-leech-2: #{$blue-700};\n --color-progressbar-seed-paused-1: #{$green-200};\n --color-progressbar-seed-paused-2: #{$grey-500};\n --color-progressbar-seed-queued-1: #{$green-100};\n --color-progressbar-seed-queued-2: #{$green-300};\n --color-progressbar-seed-1: #{$green-300};\n --color-progressbar-seed-2: #{$green-700};\n --color-tab-deselected-1: #{$grey-100};\n --color-tab-deselected-2: #{$grey-400};\n --color-tab-selected-1: #{$purple-100};\n --color-tab-selected-2: #{$purple-000};\n --color-toolbar-background: linear-gradient(#{$grey-300}, #{$grey-400});\n}\n\nhtml,\nbody {\n color: var(--color-fg-primary);\n font-family: Verdana, Arial, Helvetica, sans-serif;\n height: 100%;\n margin: 0;\n overflow: hidden;\n}\n\nimg {\n border: 0;\n}\n\na {\n outline: 0;\n}\n\n.hidden {\n display: none;\n}\n\n.even {\n background-color: var(--color-bg-even);\n}\n.odd {\n background-color: var(--color-bg-odd);\n}\n\n.mainwin {\n display: flex;\n flex-direction: column;\n height: 100%;\n position: relative;\n\n > * {\n margin: 0;\n padding: 0;\n }\n}\n\n.mainwin-workarea {\n display: flex;\n flex: 1;\n flex-direction: row;\n overflow: auto;\n}\n\n/// TOOLBAR\n\n$toolbar-height-number: 36;\n$toolbar-height: $toolbar-height-number * 1px;\n\n#mainwin-toolbar {\n align-items: center;\n background: var(--color-toolbar-background);\n border-bottom: 1px solid var(--color-border);\n display: flex;\n flex-direction: row;\n height: $toolbar-height;\n margin: 0;\n padding: 2px;\n width: 100%;\n\n button {\n background-color: transparent;\n background-position: center;\n background-repeat: no-repeat;\n border: 0;\n cursor: pointer;\n height: $toolbar-height;\n margin-right: 6px;\n user-select: none;\n width: $toolbar-height;\n\n &:hover:not(:disabled) {\n background-color: var(--color-bg-hover);\n }\n\n &:disabled {\n cursor: default;\n opacity: 0.25;\n }\n }\n\n > .toolbar-separator {\n border-left: 1px solid var(--color-border);\n height: 25px;\n margin: 0 6px 0 0;\n }\n\n :nth-last-child(2) {\n border: 0;\n flex-grow: 1;\n }\n}\n\n#toolbar-open {\n background-image: url('images/toolbar-folder.png');\n}\n\n#toolbar-remove {\n background-image: url('images/toolbar-close.png');\n}\n\n#toolbar-start {\n background-image: url('images/toolbar-start.png');\n}\n\n#toolbar-pause {\n background-image: url('images/toolbar-pause.png');\n}\n\n#toolbar-inspector {\n background-image: url('images/toolbar-info.png');\n}\n\n#toolbar-overflow {\n background-color: transparent;\n background-image: url($image-overflow);\n background-position: center;\n background-size: 26px;\n margin-right: 4px;\n width: 36px;\n\n &.alt-speed-enabled {\n background-image: url('images/blue-turtle.png'), url($image-overflow);\n background-position: bottom left, center, center;\n background-size: 16px 9px, 26px, 26px;\n }\n}\n\n/// FILTERBAR\n\n// $filterbar-height-number: 30;\n// $filterbar-height: $filterbar-height-number * 1px;\n\n.mainwin-filterbar {\n align-items: center;\n background: var(--color-toolbar-background);\n border-bottom: 1px solid var(--color-border);\n display: flex;\n flex-direction: row;\n font-size: smaller;\n // height: $filterbar-height;\n width: 100%;\n\n @include for-phone-only {\n > :not(select):not(input) {\n display: none;\n }\n > input {\n min-width: 50px;\n }\n > input,\n > select {\n height: 100%;\n }\n }\n\n > * {\n padding: 0 5px;\n }\n}\n\n#torrent-search {\n &.blur {\n color: var(--color-fg-tertiary);\n }\n}\n\n$speed-icon-size: 12px;\n\n.speed-up-icon {\n background-image: url($image-chevron-up);\n background-repeat: no-repeat;\n background-size: $speed-icon-size $speed-icon-size;\n height: $speed-icon-size;\n width: $speed-icon-size;\n}\n\n.speed-dn-icon {\n background-image: url($image-chevron-dn);\n background-repeat: no-repeat;\n background-size: $speed-icon-size $speed-icon-size;\n height: $speed-icon-size;\n width: $speed-icon-size;\n}\n\n/// TORRENT CONTAINER\n\n$pauseresume-size-number: 14;\n$pauseresume-size: $pauseresume-size-number * 1px;\n$progressbar-border-number: 1;\n$progressbar-height-number: 14;\n$popup-top: 61px; // TODO: ugly that this is hardcoded\n\n.flex {\n flex-grow: 1;\n}\n\n#torrent-container {\n flex-grow: 1;\n left: 0;\n margin: 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n padding: 0;\n right: 0;\n}\n\n.torrent-container {\n background-color: $white;\n}\n\n.torrent-list {\n $app-image: 'images/application-x-executable.png';\n $audio-image: 'images/audio-x-generic.png';\n $folder-image: 'images/folder.png';\n $font-image: 'images/font-x-generic.png';\n $image-image: 'images/image-x-generic.png';\n $package-image: 'images/package-x-generic.png';\n $text-image: 'images/folder.png';\n $text-image: 'images/text-x-generic.png';\n $video-image: 'images/video-x-generic.png';\n\n cursor: pointer;\n list-style-type: none;\n margin: 0;\n padding: 0;\n text-align: left;\n width: 100%;\n\n .torrent {\n border-bottom: 1px solid var(--color-border);\n color: var(--color-fg-secondary);\n user-select: none;\n\n &.paused {\n color: var(--color-fg-disabled);\n }\n\n .icon {\n background-position: center, top left;\n\n @mixin mime-icon-compact($mime-icon) {\n background-image: url($mime-icon);\n\n &[data-icon-multifile='true'] {\n background-image: url($mime-icon), url($folder-image);\n }\n }\n\n &[data-icon-mime-type='audio'] {\n @include mime-icon-compact($audio-image);\n }\n\n &[data-icon-mime-type='application'] {\n @include mime-icon-compact($app-image);\n }\n\n &[data-icon-mime-type='font'] {\n @include mime-icon-compact($font-image);\n }\n\n &[data-icon-mime-type='image'] {\n @include mime-icon-compact($image-image);\n }\n\n &[data-icon-mime-type='model'] {\n @include mime-icon-compact($package-image);\n }\n\n &[data-icon-mime-type='text'] {\n @include mime-icon-compact($text-image);\n }\n\n &[data-icon-mime-type='video'] {\n @include mime-icon-compact($video-image);\n }\n }\n\n &.compact {\n $icon-size-num: 16;\n $icon-size: $icon-size-num * 1px;\n\n align-items: center;\n display: flex;\n flex-direction: row-reverse;\n\n .icon {\n background-size: $icon-size, $icon-size-num * 0.5px;\n flex-shrink: 0;\n height: $icon-size;\n width: $icon-size;\n }\n\n > * {\n margin: 4px 5px;\n }\n }\n\n &:not(.compact) {\n $icon-size-num: 32;\n $icon-size: $icon-size-num * 1px;\n align-items: center;\n display: grid;\n grid-column-gap: 12px;\n grid-template-areas:\n 'icon name'\n 'icon peers'\n 'icon progressbar'\n 'icon progress-text';\n grid-template-columns: $icon-size 1fr;\n padding: 2px 12px;\n\n .icon {\n background-size: $icon-size, $icon-size-num * 0.5px;\n grid-area: icon;\n height: $icon-size;\n width: $icon-size;\n }\n\n .torrent-name {\n grid-area: name;\n }\n\n .torrent-peer-details {\n grid-area: peers;\n }\n\n .torrent-progress {\n display: flex;\n flex-direction: row;\n grid-area: progressbar;\n }\n\n .torrent-progress-details {\n grid-area: progress-text;\n }\n\n > * {\n margin: 1px 0;\n }\n }\n\n &.selected {\n background-color: var(--color-bg-selection-1);\n }\n\n &.selected .torrent-progress-details.error,\n &.selected .torrent-peer-details.error {\n color: $white;\n }\n }\n\n .icon {\n background-position: center;\n background-repeat: no-repeat;\n }\n\n .torrent-pauseresume-button {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $pauseresume-size;\n margin-left: math.floor($pauseresume-size-number / 2) * 1px;\n width: $pauseresume-size;\n\n &[data-action='pause'] {\n background-image: url($image-pause-circle-idle);\n &:active,\n &:hover {\n background-image: url($image-pause-circle-active);\n }\n }\n &[data-action='resume'] {\n background-image: url($image-play-circle-idle);\n &:active,\n &:hover {\n background-image: url($image-play-circle-active);\n }\n }\n }\n\n .torrent-progress-details.error,\n .torrent-peer-details.error {\n color: var(--color-fg-error);\n }\n\n .torrent-name {\n font-weight: bold;\n margin-bottom: 2px;\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &.compact {\n flex: 1;\n font-size: 1em;\n font-weight: normal;\n }\n\n &:not(.paused) {\n color: var(--color-fg-name);\n }\n }\n\n .torrent-progress-details,\n .torrent-peer-details {\n font-size: x-small;\n }\n\n .torrent-progress-bar {\n background-repeat: no-repeat;\n border-radius: 3px;\n border-style: solid;\n border-width: 1px;\n height: ($progressbar-height-number - ($progressbar-border-number * 2)) *\n 1px;\n\n &.full {\n flex-grow: 1;\n margin: 2px 0;\n }\n &.compact {\n min-width: 50px;\n width: 50px;\n }\n\n @function progressbar-gradient($color1, $color2) {\n @return linear-gradient(to bottom, $color1, $color2 80%);\n }\n\n @mixin progressbar-background($color1, $color2) {\n background: progressbar-gradient($color1, $color2),\n progressbar-gradient(\n var(--color-progressbar-background-1),\n var(--color-progressbar-background-2)\n );\n background-repeat: no-repeat;\n }\n\n &.leech.paused {\n @include progressbar-background(\n var(--color-progressbar-leech-paused-1),\n var(--color-progressbar-leech-paused-2)\n );\n }\n &.leech.queued {\n @include progressbar-background(\n var(--color-progressbar-leech-queued-1),\n var(--color-progressbar-leech-queued-2)\n );\n }\n &.leech {\n @include progressbar-background(\n var(--color-progressbar-leech-1),\n var(--color-progressbar-leech-2)\n );\n }\n &.magnet.paused {\n @include progressbar-background(\n var(--color-progressbar-magnet-paused-1),\n var(--color-progressbar-magnet-paused-2)\n );\n }\n &.magnet {\n @include progressbar-background(\n var(--color-progressbar-magnet-1),\n var(--color-progressbar-magnet-2)\n );\n }\n &.seed.paused {\n @include progressbar-background(\n var(--color-progressbar-seed-paused-1),\n var(--color-progressbar-seed-paused-2)\n );\n }\n &.seed.queued {\n @include progressbar-background(\n var(--color-progressbar-seed-queued-1),\n var(--color-progressbar-seed-queued-2)\n );\n }\n &.seed {\n @include progressbar-background(\n var(--color-progressbar-seed-1),\n var(--color-progressbar-seed-2)\n );\n }\n &.verify {\n @include progressbar-background(\n var(--color-progressbar-verify-1),\n var(--color-progressbar-verify-2)\n );\n }\n }\n}\n\n/// PREFERENCES DIALOG\n\n@mixin tab-image($image-url) {\n background-image: url($image-url),\n linear-gradient(\n var(--color-tab-deselected-1),\n var(--color-tab-deselected-2)\n );\n\n &:active,\n &:checked,\n &.selected {\n background-image: url($image-url),\n linear-gradient(var(--color-tab-selected-1), var(--color-tab-selected-2));\n }\n}\n\n#inspector-tab-info {\n @include tab-image($image-analytics);\n}\n\n#inspector-tab-peers {\n @include tab-image($image-peers);\n}\n\n#inspector-tab-tiers {\n @include tab-image($image-tiers);\n}\n\n#inspector-tab-files {\n @include tab-image($image-files);\n}\n\n#inspector,\n#prefs-dialog {\n @include for-phone-only {\n left: 0;\n }\n @include for-tablet-portrait-up {\n border-left: 1px solid var(--color-fg-secondary);\n width: 570px;\n }\n}\n\n#prefs-dialog {\n $background-color: $white;\n\n background: $background-color;\n bottom: 0;\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7);\n position: absolute;\n right: 0;\n top: $popup-top;\n z-index: $z-index-popup;\n\n .tabs-page {\n grid-column-gap: 8px;\n grid-row-gap: 5px;\n grid-template-columns: 1fr 1fr;\n margin: 20px;\n\n &:not(.hidden) {\n display: grid;\n }\n\n .section-label {\n font-weight: bold;\n grid-column: span 2;\n margin-left: -20px;\n padding-bottom: 5px;\n\n &:not(:first-of-type) {\n margin-top: 20px;\n }\n }\n }\n\n .alt-speed-section-label {\n background: transparent url('images/blue-turtle.png') no-repeat;\n background-position: left 4px;\n padding-left: 22px;\n }\n\n :disabled,\n .disabled {\n color: var(--color-fg-disabled);\n }\n\n #alt-times-div,\n #autostart-div,\n #port-forwarding,\n #randomize-port,\n #suffix-div,\n #use-dht-div,\n #use-lpd-div,\n #use-pex-div,\n #utp-enabled,\n .alt-speed-label {\n grid-column: span 2;\n }\n\n .blocklist-size-label,\n .blocklist-update-button,\n .port-status {\n grid-column: 2 / 3;\n }\n\n .blocklist-size-label {\n font-size: smaller;\n }\n .blocklist-size-number {\n font-weight: bolder;\n }\n\n .port-status-label {\n display: inline-block;\n font-weight: bold;\n margin-left: 5px;\n &[data-open='true'] {\n color: var(--color-fg-port-open);\n }\n &[data-open='false'] {\n color: var(--color-fg-port-closed);\n }\n }\n\n .alt-speed-label {\n font-size: smaller;\n font-style: lighter;\n // nudge it up next to the section label\n margin: -10px 0 10px -20px;\n }\n}\n\n#prefs-dialog.ui-tabs .ui-tabs-panel {\n padding: 0;\n user-select: none;\n}\n\n.prefs-section {\n text-align: left;\n\n > * {\n padding: 0 8px 8px;\n }\n\n .title {\n font-size: larger;\n font-weight: bold;\n padding-left: 0;\n }\n\n .row {\n .key {\n float: left;\n padding-top: 3px;\n\n > * {\n margin-left: 0;\n }\n }\n\n .value {\n margin-left: 150px;\n\n > * {\n width: 100%;\n }\n }\n }\n\n .checkbox-row {\n > input {\n margin: 0;\n }\n\n > label {\n margin-left: 5px;\n }\n }\n\n #alternative-speed-limits-title {\n background: transparent url('images/blue-turtle.png') no-repeat;\n padding-left: 18px;\n }\n\n #alternative-speed-limits-desc {\n font-size: smaller;\n padding-bottom: 4px;\n }\n}\n\n/// TABS\n\n.tabs-container {\n align-items: stretch;\n background: $white;\n border-left: solid 1px var(--color-border);\n bottom: 0;\n display: flex;\n flex-direction: column;\n position: absolute;\n right: 0;\n top: $popup-top;\n z-index: $z-index-popup;\n @include for-phone-only {\n left: 0;\n }\n @include for-tablet-portrait-up {\n width: 550px;\n }\n}\n\n.tabs-buttons {\n align-self: center;\n display: flex;\n padding: 10px;\n\n button {\n @include button;\n appearance: none;\n padding: 3px;\n }\n}\n\n.file-priority-radiobox,\n.tabs-buttons {\n $radius: 8px;\n :first-child {\n border-bottom-left-radius: $radius;\n border-top-left-radius: $radius;\n }\n :last-child {\n border-bottom-right-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n.tabs-pages {\n box-sizing: border-box;\n flex: 1;\n overflow-x: hidden;\n overflow-y: auto;\n @include for-phone-only {\n padding: 0 8px 20px;\n }\n @include for-tablet-portrait-up {\n padding: 0 20px 20px;\n }\n}\n\n.tabs-button {\n background-position: center;\n background-repeat: no-repeat;\n}\n\n/// INSPECTOR\n\n#inspector {\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7);\n}\n\n.inspector-info-page {\n // TODO: this is (mostly) copied from prefs-dialog.\n // can it be folded into a single set of rules?\n\n grid-column-gap: 8px;\n grid-row-gap: 5px;\n grid-template-columns: auto 1fr;\n margin: 20px;\n padding: 12px;\n\n &:not(.hidden) {\n display: grid;\n }\n\n .section-label {\n font-weight: bold;\n grid-column: span 2;\n margin-left: -20px;\n padding-bottom: 5px;\n\n &:not(:first-of-type) {\n margin-top: 20px;\n }\n }\n\n :not(.section-label) {\n // this section is not copied\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n}\n\n#inspector .tabs-button,\n#prefs-dialog .tabs-button {\n background-size: 20px 20px, 40px 30px;\n height: 30px;\n margin: 0;\n padding: 0;\n width: 40px;\n}\n\n#prefs-tab-torrent {\n @include tab-image($image-upload-download);\n}\n\n#prefs-tab-speed {\n @include tab-image($image-speed);\n}\n\n#prefs-tab-peers {\n @include tab-image($image-peers);\n}\n\n#prefs-tab-network {\n @include tab-image($image-network);\n}\n\n#inspector-file-list {\n margin: 0;\n padding: 0;\n\n .inspector-torrent-file-list-entry {\n display: grid;\n grid-column-gap: 5px;\n grid-template-areas:\n 'check name priority'\n 'blank1 info blank2';\n grid-template-columns: 20px 1fr 65px;\n margin-bottom: 4px;\n padding: 5px;\n\n &.skip {\n opacity: 0.5;\n }\n }\n\n .file-wanted-control {\n grid-area: check;\n }\n\n .inspector-torrent-file-list-entry-name {\n color: var(--color-fg-name);\n cursor: pointer;\n grid-area: name;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .inspector-torrent-file-list-entry.skip\n > .inspector-torrent-file-list-entry-name {\n color: var(--color-fg-disabled);\n }\n\n .inspector-torrent-file-list-entry-progress {\n color: var(--color-fg-secondary);\n grid-area: info;\n }\n\n .single-file .inspector-torrent-file-list-entry > .file-wanted-control,\n .inspector-torrent-file-list-entry.complete > .file-wanted-control {\n cursor: default;\n }\n}\n\n#inspector-header {\n margin: 8px 0;\n}\n\n#torrent-inspector-name {\n font-size: large;\n font-weight: bold;\n}\n\n#inspector-tiers-list {\n color: var(--color-fg-secondary);\n margin: 0 10px;\n padding: 0 12px;\n\n .tier-list-row {\n display: grid;\n grid-column-gap: 8px;\n grid-row-gap: 4px;\n margin-top: 8px;\n }\n\n .tier-list-torrent {\n color: var(--color-fg-primary);\n font-size: larger;\n font-weight: bolder;\n margin-left: -12px;\n overflow-x: hidden;\n padding-top: 20px;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tier-list-tracker {\n font-weight: bolder;\n grid-column: span 2;\n margin-top: 8px;\n padding-bottom: 4px;\n }\n\n .tier-announce,\n .tier-scrape,\n .tier-state {\n text-align: left;\n }\n\n .tier-downloads,\n .tier-leechers,\n .tier-seeders {\n text-align: right;\n }\n}\n\n// Peers Tab\n\n.peer-list {\n $table-border-color: $grey-100;\n $table-border: 1px solid $table-border-color;\n\n border: $table-border;\n border-collapse: collapse;\n cursor: default;\n table-layout: fixed;\n text-align: left;\n width: 100%;\n\n td,\n th {\n font-size: smaller;\n padding: 5px;\n }\n\n td {\n border: $table-border;\n color: var(--color-fg-secondary);\n // padding: 5px 10px;\n }\n\n .torrent-row td {\n background: $table-border-color;\n color: var(--color-fg-primary);\n font-size: normal;\n font-weight: bolder;\n overflow-x: hidden;\n padding: 10px;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .encryption {\n width: 16px;\n &[data-encrypted='true'] {\n background: transparent url($image-lock-fill) center center no-repeat;\n height: 16px;\n width: 16px;\n }\n }\n\n .peer-address,\n .percent-done,\n .speed-down,\n .speed-up {\n text-align: right;\n }\n\n .percent-done {\n width: 10%;\n }\n .speed-down,\n .speed-up {\n width: 15%;\n }\n .peer-address {\n width: 25%;\n }\n\n .peer-app-name {\n overflow-x: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include for-phone-only {\n display: none;\n }\n @include for-tablet-portrait-up {\n width: 25%;\n }\n }\n\n .status {\n cursor: pointer;\n }\n}\n\n/// FILE PRIORITY BUTTONS\n\n.file-priority-radiobox {\n $size-number: 20;\n $size: $size-number * 1px;\n $halfsize: math.floor($size-number / 2) * 1px;\n\n grid-area: priority;\n\n > * {\n @include button;\n appearance: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: $halfsize, $size;\n height: $size;\n margin: 0;\n padding: 0;\n width: $size;\n }\n\n > .low {\n @include tab-image($image-chevron-dn);\n border-right-width: 0;\n }\n\n > .normal {\n @include tab-image($image-baseline);\n }\n\n > .high {\n @include tab-image($image-chevron-up);\n border-left-width: 0;\n }\n}\n\n/// CONTEXT MENU\n\n.context-menu {\n $background-color: var(--color-bg-menu);\n $disabled-color: var(--color-fg-disabled);\n\n background: $background-color;\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7);\n position: absolute;\n z-index: $z-index-popup;\n\n .context-menuitem {\n list-style: none;\n padding: 5px 10px;\n\n &:hover:not(:disabled),\n &:focus:not(:disabled) {\n background-image: linear-gradient($white, var(--color-bg-menu));\n cursor: pointer;\n }\n\n &:disabled {\n color: $disabled-color;\n cursor: none;\n }\n }\n}\n\n.context-menu-separator {\n border-bottom: 1px solid var(--color-fg-secondary);\n margin-bottom: 10px;\n padding-bottom: 10px;\n}\n\n/// OVERFLOW MENU\n\n.overflow-menu {\n background: linear-gradient(\n 160deg,\n #d21,\n 1%,\n var(--color-bg-hover),\n 40%,\n var(--color-bg-menu)\n );\n border-radius: 8px;\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7);\n padding: 20px;\n position: fixed;\n width: 200px;\n z-index: $z-index-popup;\n\n fieldset {\n border: 0;\n margin-bottom: 8px;\n padding: 0;\n }\n\n > .actions,\n > .info,\n > .links {\n display: flex;\n flex-direction: column;\n }\n\n legend {\n font-weight: bolder;\n margin-bottom: 4px;\n }\n\n legend ~ * {\n margin-left: 12px;\n }\n\n a,\n button,\n label {\n color: var(--color-fg-primary);\n font-size: 1em;\n\n &:disabled {\n color: var(--color-fg-disabled);\n cursor: default;\n }\n\n &:focus:not(:disabled),\n &:hover:not(:disabled) {\n background-color: var(--color-bg-hover);\n }\n }\n\n a,\n button {\n background: transparent;\n border: 0;\n cursor: pointer;\n display: block;\n padding: 4px 0;\n text-align: left;\n text-decoration: none;\n width: 150px;\n }\n\n .input-and-label {\n align-items: center;\n display: inline-flex;\n flex-direction: row;\n }\n\n #display-options {\n > * {\n align-items: center;\n display: inline-flex;\n flex-direction: row;\n\n > * {\n margin: 4px;\n }\n\n :first-child {\n margin-left: 0;\n }\n\n :last-child {\n margin-right: 0;\n }\n }\n }\n\n #speed-options {\n display: flex;\n flex-direction: column;\n\n > .speed-up,\n > .speed-down {\n align-items: center;\n display: flex;\n flex-direction: row;\n padding: 4px 0;\n\n > label {\n overflow: hidden;\n width: 80px;\n }\n }\n\n .alt-speed {\n display: grid;\n grid-column-gap: 5px;\n grid-row-gap: 5px;\n grid-template-areas:\n 'check lb'\n 'turtle values';\n grid-template-columns: 20px 1fr;\n margin-bottom: 4px;\n }\n\n #alt-speed-check {\n grid-area: check;\n\n &:checked ~ #alt-speed-image {\n background-image: url('images/blue-turtle.png');\n }\n\n &:not(:checked) ~ #alt-speed-image {\n background-image: url('images/turtle.png');\n }\n }\n\n #alt-speed-image {\n background-position: center;\n background-repeat: no-repeat;\n grid-area: turtle;\n }\n\n #alt-speed-label {\n grid-area: lb;\n }\n\n #alt-speed-values-label {\n font-size: small;\n grid-area: values;\n }\n }\n}\n\n// hide the fullscreen button unless we're on mobile\n@include for-tablet-portrait-up {\n #display-fullscreen-check,\n #display-fullscreen-label {\n display: none;\n }\n}\n\n/// DIALOGS\n\n$dialog-padding-number: 20;\n$dialog-logo-padding-number: $dialog-padding-number * 2 / 3;\n$logo-size: 64px;\n\n@include for-phone-only {\n .dialog-buttons {\n padding-top: $dialog-logo-padding-number * 1px;\n }\n\n .dialog-container {\n opacity: 96%;\n position: absolute;\n top: $popup-top;\n width: 100%;\n }\n\n .dialog-logo {\n padding-bottom: $dialog-logo-padding-number * 1px;\n }\n\n .dialog-window {\n align-items: center;\n display: flex;\n flex-direction: column;\n }\n}\n@include for-tablet-portrait-up {\n .dialog-container {\n left: 50%;\n min-width: 400px;\n position: absolute;\n top: $popup-top * 2;\n transform: translateX(-50%);\n }\n\n .dialog-heading {\n grid-area: heading;\n }\n\n .dialog-logo {\n grid-area: icon;\n padding-right: $dialog-logo-padding-number * 1px;\n }\n\n .dialog-window {\n display: grid;\n grid-column-gap: 12px;\n grid-template-areas:\n 'icon heading'\n 'icon message'\n 'icon workarea'\n 'icon buttons';\n grid-template-columns: $logo-size 1fr;\n padding: 2px 12px;\n }\n}\n\n.dialog-buttons {\n display: flex;\n float: right;\n grid-area: buttons;\n margin: 10px 0 0;\n text-align: center;\n\n button {\n appearance: none;\n background: transparent;\n border: 1px solid var(--color-border);\n border-radius: 5px;\n color: var(--color-fg-name);\n margin-left: 8px;\n padding: 8px;\n text-decoration: none;\n }\n\n a:hover,\n a:active {\n background: linear-gradient($white, var(--color-bg-menu));\n }\n}\n\n.dialog-buttons-begin {\n flex-grow: 1;\n}\n\n.dialog-buttons-end {\n display: none;\n}\n\n.dialog-container {\n border: 0;\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7);\n color: var(--color-fg-primary);\n display: block;\n margin: 0;\n padding: 0;\n z-index: $z-index-popup;\n}\n\n.dialog-heading {\n align-items: center;\n display: flex;\n font-size: 1.2em;\n font-weight: bold;\n}\n\n.dialog-logo {\n background: transparent url('images/logo.png') top left no-repeat;\n height: $logo-size;\n width: $logo-size;\n}\n\n.dialog-message {\n grid-area: message;\n margin: 10px 0 0;\n}\n\n.dialog-window {\n background: linear-gradient(160deg, #d21, 1%, #f7f7f7, 40%, #ccc);\n height: 100%;\n padding: $dialog-padding-number * 1px;\n}\n\n.dialog-workarea {\n display: flex;\n flex-direction: column;\n grid-area: workarea;\n margin: 10px 0 0;\n\n > * {\n margin-bottom: 5px;\n }\n}\n\n/// ABOUT DIALOG\n\n.about-dialog .dialog-workarea > * {\n margin-bottom: 10px;\n}\n\n.about-dialog-version-number {\n margin-left: 4px;\n}\n\n.about-dialog-version-checksum {\n font-size: small;\n font-style: italic;\n font-weight: normal;\n margin-left: auto;\n padding-left: 10px;\n}\n\n/// HOTKEYS DIALOG\n\n.shortcuts-dialog {\n table {\n border-collapse: collapse;\n width: 100%;\n }\n\n th,\n td {\n border: 1px solid var(--color-border);\n padding: 5px 10px;\n }\n}\n\n/// RENAME DIALOG\n\n#torrent-rename-name {\n min-width: 400px;\n}\n\n/// SET-LOCATION DIALOG\n\n#move-container #torrent-path {\n min-width: 400px;\n}\n\n/// STATISTICS DIALOG\n\n.tabs-pages,\n.inspector-info-page,\n.statistics-dialog {\n .content {\n column-gap: 16px;\n display: grid;\n grid-row-gap: 6px;\n grid-template-columns: auto 1fr;\n margin-top: 4px;\n\n @include for-phone-only {\n margin: 4px 0 16px;\n }\n @include for-tablet-portrait-up {\n margin: 4px 16px 16px;\n }\n\n div {\n word-break: break-word;\n }\n }\n\n fieldset {\n border: 0;\n margin: 0;\n padding: 0;\n }\n\n legend {\n font-weight: bolder;\n margin-bottom: 4px;\n }\n}\n\n/// UPLOAD DIALOG\n\n#free-space-text {\n display: inline-block;\n float: right;\n font-size: smaller;\n font-style: italic;\n}\n\n#torrent-upload-frame {\n border: 0;\n display: block; /* Don't change this : safari forms won't target hidden frames (they open a new window) */\n height: 0;\n left: -1000px;\n margin: 0;\n padding: 0;\n position: absolute;\n top: -1000px;\n width: 0;\n}\n\n.ui-menu {\n width: 200px;\n}\n"],sourceRoot:""}]);const ve=R},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var s=0;s