body[data-view=ftp] .shell{max-width:1800px;grid-template-columns:215px minmax(0,1fr)}body[data-view=ftp] main{padding:30px 30px 20px}body[data-view=ftp] .heading{margin:27px 0}body[data-view=ftp] h1{font-size:36px}body[data-view=ftp] #feedback{display:none}.ftp-app{--surface:#171c17;--edge:#384033;--subtle:#a2ad9b;font-size:12px}.ftp-app section{margin:0}.ftp-app button{font-size:11px}.ftp-app input,.ftp-app select{font-size:12px;min-height:42px;padding:10px 12px}.ftp-app input[type=checkbox]{min-height:0;padding:0;width:15px;height:15px}.connection-strip{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);padding:13px 0;margin-bottom:18px}.connection-strip #connection-status{font-weight:700}.connection-strip .online{color:var(--green)}#connection-detail{color:var(--subtle);font-size:10px;overflow-wrap:anywhere}#connection-toggle{margin-left:auto}.connection-panel{border:1px solid var(--edge);padding:20px;background:var(--surface);margin-bottom:22px!important}.panel-label{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.12em;color:var(--subtle);margin-bottom:20px}.connection-grid{display:grid;grid-template-columns:2fr 1.2fr .65fr;gap:16px}.connection-grid label{display:grid;gap:7px;font-size:10px;color:var(--subtle)}.connection-grid button[type=submit]{justify-self:end;grid-column:3;min-width:140px}.password-wrap{position:relative;display:flex}.password-wrap input{padding-right:44px!important}.password-wrap button{position:absolute;right:5px;top:5px;bottom:5px;border:0}.file-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.file-panel,.transfer-panel{border:1px solid var(--edge);padding:19px;min-width:0}.file-panel>.panel-label,.transfer-panel>.panel-label{border-bottom:1px solid var(--line);padding-bottom:17px}.browser-toolbar{display:flex;gap:7px}.browser-toolbar>button{font-size:18px;padding:6px 12px}.browser-toolbar form{display:flex;flex:1;min-width:0;gap:6px}.browser-toolbar input{font-size:12px!important}.browser-toolbar form button{padding:6px 12px}#breadcrumbs{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin:9px 0 19px;color:var(--subtle)}#breadcrumbs button{padding:2px 5px;border:none;font-size:10px}#breadcrumbs>span{font-size:10px;color:#626e5d}.file-filters{display:flex;gap:8px;margin-bottom:16px}.search-field{display:flex;align-items:center;border:1px solid var(--line);min-width:100px;flex:1;padding-left:9px;color:var(--subtle)}.search-field input{border:none!important;background:transparent!important;min-width:0}.search-field>span{font-size:20px}.file-filters select{width:126px;min-width:0;padding:6px;font-size:10px}.file-filters button{white-space:nowrap;padding:6px 9px}.selection-bar{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);padding:10px 0}.selection-bar>span{flex:1;font-size:10px;color:var(--subtle)}.selection-bar button{padding:5px 8px;font-size:10px}.danger-text{color:#efaa9a!important}.file-table-wrap{min-height:300px;overflow:auto}.file-table{font-size:11px}.file-table th{font-size:9px;letter-spacing:.06em;white-space:nowrap}.file-table td,.file-table th{padding:12px 5px}.file-table td:first-child{width:24px}.file-table td:nth-child(2){min-width:140px;overflow-wrap:anywhere}.file-table td:nth-child(3){white-space:nowrap;font-size:10px;color:var(--subtle)}.file-table td:nth-child(4){white-space:nowrap;font-size:9px;color:var(--subtle)}.file-table tr:hover{background:#1a2217}.file-table tr.selected{background:#24301c}.file-name{background:none!important;border:0!important;padding:4px 0!important;color:var(--text)!important;font-weight:400!important;text-align:left;display:inline;overflow-wrap:anywhere;word-break:break-word}.file-name:hover{color:var(--green)!important}.file-kind{display:inline-block;width:28px;font-size:8px;color:#a7b89a;vertical-align:middle;margin-right:7px}.file-kind.dir{color:var(--green);font-size:19px}.row-actions{display:flex;gap:3px;justify-content:flex-end}.row-actions button{padding:3px 6px;border-color:transparent;font-size:14px}.file-empty{min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--subtle);text-align:center}.empty-icon{font-size:35px;color:#5a7050;letter-spacing:-.1em}.file-empty strong{color:var(--text);font-weight:400}.file-empty>span:last-child{font-size:10px}.file-summary{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:13px;font-size:9px;color:var(--subtle)}.dropzone{border:1px dashed #637a52;background:#1b2416;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.dropzone:hover,.dropzone:focus-visible,.dropzone.dragover{background:#283b1d;border-color:var(--green);outline:1px solid var(--green)}.upload-glyph{font-size:38px;line-height:1.2;color:var(--green)}.dropzone strong{font-weight:500;font-size:12px}.dropzone>span:not(.upload-glyph){font-size:10px;color:var(--subtle)}.drop-limit{margin-top:7px;letter-spacing:.1em}.pick-actions{display:flex;gap:8px;margin:11px 0 20px}.pick-actions button{flex:1;justify-content:center}.conflict-label{display:grid;gap:8px;color:var(--subtle);font-size:10px}.conflict-label select{width:100%}.transfer-totals{display:flex;align-items:baseline;justify-content:space-between;margin:23px 0 10px}.transfer-totals strong{font-size:24px;font-weight:400;letter-spacing:-.05em}.transfer-totals span{font-size:9px;color:var(--subtle)}#queue-progress{height:3px;margin-bottom:17px}.transfer-controls{display:flex;gap:7px}.transfer-controls>button:first-child{flex:1;justify-content:center;padding:11px}.transfer-controls>button:last-child{padding:6px 9px}.queue-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px;font-size:9px;color:var(--subtle);gap:8px}.queue-heading button{padding:2px 4px;font-size:9px;border:none}.upload-queue{list-style:none;padding:0;margin:0;max-height:460px;overflow:auto}.queue-item{border-top:1px solid var(--line);padding:12px 0}.queue-file{display:flex;justify-content:space-between;align-items:start;gap:9px}.queue-file strong{font-size:11px;font-weight:400;overflow-wrap:anywhere}.queue-file>span{display:flex}.queue-file button{padding:0 5px;border:0;font-size:13px}.queue-meta{display:flex;justify-content:space-between;gap:8px;color:var(--subtle);font-size:9px;margin:7px 0}.queue-item progress{height:2px;margin:0}.queue-item.done .queue-meta,.queue-item.skipped .queue-meta{color:var(--green)}.queue-error{color:#efaa9a;font-size:10px;white-space:pre-wrap}.queue-empty{font-size:10px;color:var(--subtle);padding:20px 0}.ftp-notice{border-left:2px solid var(--green);padding:10px 14px;margin:20px 0;color:var(--green);background:#182014;font-size:11px;white-space:pre-wrap}.ftp-notice.error{color:#f2b2a1;border-color:#d98d78;background:#281d17}.activity-panel{border-top:1px solid var(--line);padding:14px 0;color:var(--subtle)}.activity-panel summary{cursor:pointer;font-size:10px}.activity-panel summary span{float:right}#activity-log{list-style:none;padding:0;max-height:230px;overflow:auto;font-size:10px}#activity-log li{display:flex;gap:18px;padding:7px 0;border-bottom:1px solid var(--line)}#activity-log time{white-space:nowrap}#activity-log span{overflow-wrap:anywhere}.ftp-app dialog{background:#181e16;color:var(--text);border:1px solid #6b805b;padding:25px;width:min(550px,calc(100vw - 32px));max-height:85vh;overflow:auto}.ftp-app dialog::backdrop{background:#030703c9;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:18px}.dialog-heading h2{font-size:18px}#dialog-description{color:var(--subtle);font-size:12px}#dialog-files{padding-left:20px;max-height:160px;overflow:auto;overflow-wrap:anywhere}#dialog-label{display:block;font-size:11px;margin:18px 0 8px}#dialog-error{color:#f2b2a1;white-space:pre-wrap;font-size:11px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.danger-button{background:#dca18d!important;border-color:#dca18d!important;color:#27130d!important}#preview-dialog{width:min(1000px,calc(100vw - 32px))}#preview-content{max-height:60vh;overflow:auto;background:#0b100a;padding:18px;font-size:12px;white-space:pre;color:var(--green)}
@media(min-width:1500px){body[data-view=ftp] main{padding:30px 42px}.file-workspace{grid-template-columns:minmax(0,1fr) 320px}.file-panel,.transfer-panel{padding:23px}}
@media(max-width:1200px){.file-workspace{grid-template-columns:minmax(0,1fr)}.transfer-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 24px}.transfer-panel>.panel-label{grid-column:1/-1;margin-bottom:0}.dropzone{grid-column:1;grid-row:2/5}.pick-actions{grid-column:1;margin:0}.conflict-label{grid-column:2;grid-row:2}.transfer-totals{grid-column:2;grid-row:3;margin:0;align-self:end}#queue-progress{grid-column:2;grid-row:4;margin:0;align-self:center}.transfer-controls{grid-column:2;grid-row:5}.queue-heading,.upload-queue,.queue-empty{grid-column:1/-1}.queue-heading{margin-top:10px}.upload-queue{max-height:280px}.queue-empty{padding:0}.connection-grid{grid-template-columns:1fr 1fr}.connection-grid button[type=submit]{grid-column:auto;justify-self:stretch;min-width:0}body[data-view=ftp] .shell{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:760px){body[data-view=ftp] .shell{display:block}body[data-view=ftp] main{padding:22px 16px}.connection-panel{padding:15px}.connection-grid{gap:12px}.connection-strip{gap:10px}#connection-toggle{margin-left:0}.file-panel,.transfer-panel{padding:14px}.file-filters{flex-wrap:wrap}.file-filters .search-field{flex-basis:100%}.file-filters select{flex:1}.file-table td:nth-child(4),.file-table th:nth-child(4){display:none}.selection-bar{flex-wrap:wrap}.selection-bar>span{flex-basis:100%}.row-actions button{padding:3px 5px}.file-name{font-size:10px!important}.file-table td:nth-child(2){min-width:115px}.file-table-wrap{min-height:220px}.file-empty{min-height:200px}.file-kind{width:20px;margin-right:3px}.transfer-panel{display:block}.dropzone{min-height:170px}.pick-actions{margin:10px 0 20px}.transfer-totals{margin:20px 0 10px}#queue-progress{margin-bottom:15px}.queue-heading{margin-top:22px}.connection-grid .host-field{grid-column:1/-1}.file-workspace{gap:17px}.ftp-app input,.ftp-app select{font-size:14px}.panel-label{font-size:9px}}
@media(prefers-reduced-motion:reduce){.dropzone{transition:none}}
.queue-target{font-size:9px;color:var(--subtle);overflow-wrap:anywhere;margin:3px 0}
