:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#21334b;background:#f5f8fc;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:linear-gradient(160deg,#f0f6ff 0,#f9fbfe 36%,#f5f8fc 100%);font-size:14px;line-height:1.5}
button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}
button:focus-visible,input:focus-visible{outline:3px solid #73b7ff;outline-offset:2px}
.app-shell{width:min(1190px,calc(100% - 40px));margin:0 auto;padding:45px 0 54px}
.page-head{padding:0 4px 21px}
.brand-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#1768d2;color:#fff;font-weight:700;font-size:23px;box-shadow:0 4px 12px #2a6ac52a}
.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;color:#6080a5}
h1{font-size:clamp(26px,3.4vw,37px);letter-spacing:-.045em;line-height:1.18;margin:0 0 13px;color:#17375d;font-weight:780}
.page-label{font-weight:450;color:#637d9b}
.intro{color:#607187;font-size:15px;line-height:1.65;margin:0;max-width:840px}
.intro strong{color:#2b5382}
.folder-bar,.transfer-card,.file-card,.folder-entry{background:#fff;border:1px solid #dfe7f1;border-radius:13px;box-shadow:0 4px 16px #3049690a}
.folder-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:16px 21px}
.folder-info{display:flex;align-items:center;gap:13px;min-width:0}
.folder-icon{background:#eaf3ff;color:#2868ba;width:42px;height:42px;display:grid;place-items:center;border-radius:10px;font-size:26px;flex-shrink:0}
.folder-info strong{display:block;font-size:15px;word-break:break-word}
.field-label{font-size:10px;letter-spacing:.10em;font-weight:750;color:#8293a6;display:block}
.folder-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
.subtle-button{white-space:nowrap;background:transparent;border:1px solid transparent;color:#55718e;padding:8px 11px;border-radius:7px;font-size:13px;font-weight:650}
.subtle-button:hover{background:#f1f5f9;border-color:#dce6f2}
.subtle-button.accent{color:#1768c0;background:#edf5ff}
.subtle-button.accent:hover{background:#dfedff}
.folder-entry{margin:-6px 0 19px;padding:20px}
.folder-entry label{font-weight:700;display:block;margin-bottom:8px}
.folder-entry-fields{display:flex;gap:9px;flex-wrap:wrap}
.folder-entry-fields input{min-width:160px;flex:1;padding:10px 12px;border:1px solid #cbd8e5;border-radius:7px;outline-offset:2px}
.folder-entry .muted{margin:9px 0 0}
.transfer-card{padding:19px 24px 17px;margin-bottom:19px}
.muted{color:#8591a1;font-size:13px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.toolbar-main{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:9px 13px;border:1px solid transparent;border-radius:7px;color:#fff;font-weight:650;font-size:13px;white-space:nowrap;text-decoration:none;box-shadow:0 1px 2px #1f2b4410;transition:filter .12s,transform .12s}
.button:not(:disabled):hover{filter:brightness(.95)}.button:active:not(:disabled){transform:translateY(1px)}
.button.success{background:#238a50}.button.primary{background:#256fd0}.button.amber{background:#e3a425;color:#fff}.button.danger{background:#d7494e}.button.neutral{background:#edf2f7;color:#53687d;border-color:#dae2ec}
.picker{position:relative;overflow:hidden;cursor:pointer}
.picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.picker:focus-within{outline:3px solid #73b7ff;outline-offset:2px}
.toolbar-meta{display:flex;align-items:center;gap:12px;color:#597087;font-size:12px}
.toolbar-meta strong{font-size:13px}
.upload-hint{display:flex;align-items:flex-start;gap:7px;margin:11px 0 0;color:#697f96;font-size:12.5px;line-height:1.5}
.upload-hint-icon{display:inline-grid;place-items:center;flex:0 0 16px;width:16px;height:16px;border:1px solid #99b0c8;border-radius:50%;color:#6f8ca8;font-size:11px;font-weight:700;line-height:1;margin-top:1px}
.total-progress{padding:16px 2px 3px}.progress-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:13px}
progress{display:block;appearance:none;width:100%;height:9px;border:0;border-radius:100px;overflow:hidden;background:#e7eef7}
progress::-webkit-progress-bar{background:#e7eef7;border-radius:100px}progress::-webkit-progress-value{background:#2b87de;border-radius:100px}progress::-moz-progress-bar{background:#2b87de;border-radius:100px}
.total-progress .muted{margin-top:7px}
.file-card{overflow:hidden}
.file-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid #ebeff4}
h2{font-size:16px;letter-spacing:-.012em;margin:0;color:#29435f}
.text-button{background:none;border:0;color:#246fc5;font-weight:700;font-size:13px;padding:5px 2px}
.text-button:hover{text-decoration:underline}
.table-scroll{overflow-x:auto}
.file-table{width:100%;border-collapse:collapse;text-align:left;table-layout:auto}
.file-table thead{background:#f7f9fc}
.file-table th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#8291a2;font-weight:800;padding:12px 14px;white-space:nowrap}
.file-table td{border-top:1px solid #eaf0f6;padding:12px 14px;vertical-align:middle;font-size:13px}
.file-table tbody tr:hover{background:#fafcff}
.file-table th:first-child,.file-table td:first-child{padding-left:21px}
.check-cell{width:45px}.check-cell input,.file-table input[type=checkbox]{width:16px;height:16px;accent-color:#2b76cf;cursor:pointer;vertical-align:middle}
.preview-cell{width:64px}.preview-img{display:block;width:49px;height:49px;object-fit:contain;border-radius:6px;background:#f1f5f9;border:1px solid #e5ebf2}
.file-placeholder{display:grid;place-items:center;width:49px;height:49px;border:1px solid #e3e9f0;background:#f2f5fa;color:#6482a1;border-radius:7px;font-size:10px;font-weight:800;letter-spacing:.01em;overflow:hidden}
.folder-placeholder{display:grid;place-items:center;width:49px;height:49px;border:1px solid #dbe8f7;background:#eaf3ff;color:#2971bd;border-radius:7px;font-size:24px}
.folder-row{background:#fbfdff}
.folder-open{display:inline-block;font-weight:700;color:#266ab3;text-decoration:none;padding:7px 4px}
.folder-open:hover{text-decoration:underline}
.filename{font-weight:680;color:#265b97;text-decoration:none;overflow-wrap:anywhere;word-break:break-word}
.filename:hover{text-decoration:underline}.filename.pending{color:#355271}
.file-note{color:#7f8fa2;font-size:11px;margin-top:2px}
.error-note{color:#b63640;font-weight:600}
.date-cell{min-width:138px;color:#77899b;white-space:nowrap}
.size-cell{min-width:135px;white-space:nowrap;color:#526b84}
.size-cell progress{margin-top:6px;height:6px}
.actions-cell{width:100px;text-align:right}
.icon-button{padding:7px 9px;background:#fff;border:1px solid #ebd0d3;color:#b5363d;border-radius:6px;font-weight:700;font-size:12px;white-space:nowrap}
.icon-button:hover{background:#fff2f3}
.icon-button.cancel-row{border-color:#efdcae;color:#98711d}
.empty-state{text-align:center!important;color:#8595a7;padding:44px 20px!important;font-size:14px!important}
.footnote{font-size:12px;text-align:center;color:#8192a5;margin-top:23px;line-height:1.7}
.notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#23405f;color:white;padding:11px 17px;border-radius:8px;max-width:min(92vw,640px);font-size:13px;line-height:1.5;box-shadow:0 8px 30px #2a3e5b29;z-index:10}
.notice.error{background:#a23c42}
[hidden]{display:none!important}
@media(max-width:760px){
 .app-shell{width:min(100% - 22px,620px);padding:25px 0}
 .folder-bar{padding:13px 15px;align-items:flex-start;flex-wrap:wrap}
 .folder-actions{justify-content:flex-start;margin-left:48px}
 .transfer-card{padding:13px}
 .toolbar{gap:10px}
 .toolbar-main{gap:7px}
 .button{padding:9px 11px}
 .file-heading{padding:14px 17px}
 .date-cell{display:none}
 .file-table td,.file-table th{padding:12px 8px}
 .file-table th:first-child,.file-table td:first-child{padding-left:12px}
 .file-table td:last-child,.file-table th:last-child{padding-right:12px}
 .desktop-break{display:none}
}
@media(max-width:480px){
 h1{font-size:26px}.intro{font-size:14px}
 .folder-actions{margin-left:0}
 .toolbar-main{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .button{white-space:normal}
 .size-cell{min-width:80px}
 .file-table td{font-size:12px}
 .actions-cell{width:73px}
 .icon-button{font-size:11px;padding:6px}
}
/* v3: nested upload queue and explicit ZIP/folder controls */
.subtle-button{text-decoration:none;display:inline-flex;align-items:center}
.subtle-button.zip-button{color:#2465a8;border:1px solid #c9dbf0;background:#f5f9ff}
.subtle-button.danger-outline{color:#b5363d;border:1px solid #f0d5d7;background:#fffafa}
.subtle-button.danger-outline:hover{background:#fff0f1}
.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;white-space:nowrap}
.actions-cell{width:170px}
.tree-name{padding-left:calc(14px + var(--tree-depth,0)*22px)!important}
.tree-toggle{display:inline-block;border:0;background:none;padding:4px 3px 4px 0;color:#265b97;font-weight:700;text-align:left;cursor:pointer}
.tree-toggle:hover{text-decoration:underline}
.pending-folder-row{background:#f2f8ff}
.pending-folder-row .file-note{padding-left:12px}
@media(max-width:760px){.tree-name{padding-left:calc(8px + var(--tree-depth,0)*17px)!important}}
@media(max-width:480px){.actions-cell{width:104px}.row-actions{gap:3px}.folder-open{padding:4px}.tree-name{padding-left:calc(8px + var(--tree-depth,0)*11px)!important}}

@media(max-width:760px){.folder-open-link{display:none}}

/* v5: direct file and folder sharing, without changing the existing controls. */
.copy-action{appearance:none;border:0;background:transparent;color:#266ab3;font:inherit;font-weight:700;font-size:12px;padding:7px 4px;white-space:nowrap;cursor:pointer}
.copy-action:hover{text-decoration:underline;color:#174e86}
.copy-action:focus-visible{outline:3px solid #73b7ff;outline-offset:2px;border-radius:3px}
.row-actions{gap:7px}
.actions-cell{width:235px}
@media(max-width:760px){.actions-cell{width:142px}.row-actions{flex-wrap:wrap;gap:4px 6px}}
@media(max-width:480px){.actions-cell{width:94px}.row-actions{flex-direction:column;align-items:flex-end;gap:3px}.copy-action{font-size:11px;padding:4px 2px}}

/* v6: make the explicit download-link action legible on narrow screens. */
.actions-cell{width:280px}
@media(max-width:760px){.actions-cell{width:142px}}
@media(max-width:480px){.actions-cell{width:110px}.copy-action{white-space:normal;max-width:104px;text-align:right;line-height:1.25}}

/* v7: upload-space breadcrumbs, compact icon-only file actions. */
.folder-location{min-width:0}
.folder-breadcrumbs{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:7px;row-gap:2px;font-size:15px;overflow-wrap:anywhere}
.folder-breadcrumbs a{text-decoration:none;color:#2467a9;font-weight:650}
.folder-breadcrumbs a:hover{text-decoration:underline}
.folder-breadcrumbs strong{font-weight:750;color:#233a56}
.crumb-separator{color:#a0afc1;font-weight:700}
.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap;white-space:nowrap}
.actions-cell{width:1%;min-width:112px;white-space:nowrap}
.action-icon,.action-icon.copy-action{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;min-width:34px;padding:0;border:1px solid #d7e2ee;border-radius:8px;background:#fff;color:#306caa;text-decoration:none;cursor:pointer;vertical-align:middle;transition:background-color .12s,border-color .12s;font:inherit}
.action-icon svg{width:17px;height:17px;display:block;pointer-events:none}
.action-icon:hover,.action-icon.copy-action:hover{background:#eaf3ff;border-color:#a9c6e6;color:#185796;text-decoration:none}
.action-icon.destructive{color:#b64048;border-color:#efd8da}
.action-icon.destructive:hover{background:#fff0f1;border-color:#ebb4b8;color:#aa2831}
.action-icon.warning{color:#956a19;border-color:#e9dcbf}
.action-icon.warning:hover{background:#fff8e9}
.action-icon:focus-visible{outline:3px solid #73b7ff;outline-offset:2px}
.action-icon:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:760px){.actions-cell{width:1%;min-width:112px}.row-actions{flex-wrap:nowrap;gap:4px}}
@media(max-width:480px){.actions-cell{width:1%;min-width:112px}.action-icon,.action-icon.copy-action{width:30px;height:30px;min-width:30px;flex-basis:30px;border-radius:6px}.action-icon svg{width:16px;height:16px}.row-actions{gap:3px}.folder-actions{margin-left:0}}

@media(max-width:480px){
 .file-table td,.file-table th{padding-left:6px;padding-right:6px}
 .file-table td:first-child,.file-table th:first-child{padding-left:10px}
 .file-table td:last-child,.file-table th:last-child{padding-right:9px}
 .size-cell{min-width:67px}
 .actions-cell{min-width:120px}
 .row-actions{flex-direction:row;align-items:center;justify-content:flex-end;gap:3px}
 .action-icon,.action-icon.copy-action{width:28px;height:29px;min-width:28px;flex:0 0 28px}
}

.mobile-size{display:none;color:#798da4;font-size:11px;font-weight:500;margin-top:2px}
@media(max-width:480px){
 .size-cell{display:none}
 .mobile-size{display:block}
}

/* v7.3.2: discoverable queue expansion, quiet skip summary and steady progress text. */
.queue-summary{margin-top:9px;padding:9px 12px;background:#fff8e9;border:1px solid #edd8ad;border-radius:7px;color:#77571c;font-size:12.5px;line-height:1.55;overflow-wrap:anywhere}
.tree-toggle{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}
.tree-chevron{display:inline-grid;place-items:center;width:22px;height:22px;min-width:22px;background:#dfedfb;border:1px solid #aaccea;border-radius:5px;color:#1b5a9e;font-size:16px;line-height:1}
.tree-toggle-hint{font-size:11px;font-weight:500;color:#647e9a;text-decoration:underline;text-underline-offset:2px}
#progress-details{font-variant-numeric:tabular-nums}
@media(max-width:480px){.tree-toggle{gap:4px}.tree-toggle-hint{font-size:10px}}

/* v7.3.3: distinguish queued vs stored folders; expand stored directories in place. */
.stored-folder-name{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.stored-folder-toggle{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:#2467a9;cursor:pointer;padding:2px 4px;border-radius:5px;font:inherit}
.stored-folder-toggle:hover .tree-toggle-hint{text-decoration-thickness:2px}
.stored-folder-toggle:focus-visible{outline:2px solid #73b7ff;outline-offset:2px}
.stored-folder-toggle .tree-chevron{width:21px;height:21px;min-width:21px;font-size:15px}
.nested-stored-row{background:#f9fcff}
.nested-stored-row .filename{color:#3e658e}
.stored-folder-status{font-style:italic;color:#8193a6;font-size:12px}
@media(max-width:480px){.stored-folder-name{gap:4px}.stored-folder-toggle{gap:3px}.stored-folder-toggle .tree-toggle-hint{font-size:10px}}

/* v7.3.4: accessible, reusable confirmation dialog (native dialog behavior, custom styling). */
.action-dialog{width:min(470px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);overflow-y:auto;margin:auto;padding:24px;background:#fff;border:1px solid #dce5f1;border-radius:15px;box-shadow:0 18px 65px #172e4c40;color:#243951;line-height:1.5}
.action-dialog::backdrop{background:rgba(19,37,61,.52);backdrop-filter:blur(2px)}
.dialog-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.dialog-symbol{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:11px;background:#fff0f1;color:#b63640;font-size:23px;font-weight:800;line-height:1}
.action-dialog[data-tone="warning"] .dialog-symbol{background:#fff4dc;color:#99650d}
.action-dialog[data-tone="info"] .dialog-symbol{background:#eaf3ff;color:#246bb9}
.dialog-heading-text{flex:1;min-width:0}
.dialog-eyebrow{display:block;color:#8193aa;font-size:10px;letter-spacing:.12em;font-weight:800;margin-bottom:3px}
.action-dialog h2{margin:0;font-size:21px;color:#183b61;letter-spacing:-.02em;line-height:1.25}
.dialog-dismiss{display:grid;place-items:center;flex:0 0 30px;height:30px;width:30px;padding:0;margin:-4px -4px 0 0;background:transparent;border:1px solid transparent;border-radius:7px;color:#67829c;font-size:23px;line-height:1}
.dialog-dismiss:hover{background:#f1f5f9;border-color:#e1e8f0}
.dialog-message{font-size:14px;margin:0 0 10px;color:#354b61;overflow-wrap:anywhere}
.dialog-detail{margin:0;font-size:13px;color:#7d4a4d;background:#fff6f6;border-left:3px solid #e4aeb1;border-radius:4px;padding:10px 12px;overflow-wrap:anywhere}
.action-dialog[data-tone="warning"] .dialog-detail{color:#795b27;background:#fff9ef;border-left-color:#e0c07b}
.dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:24px;flex-wrap:wrap}
.dialog-actions .button{min-height:41px;padding:10px 16px}
.dialog-copy-block{margin-top:15px}
.dialog-copy-block label{display:block;font-size:12px;font-weight:700;color:#557089;margin-bottom:6px}
.dialog-copy-block textarea{display:block;width:100%;resize:vertical;min-height:82px;max-height:200px;padding:10px;border-radius:7px;border:1px solid #c7d8e9;color:#284f79;background:#f9fbff;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.dialog-copy-block>span{display:block;margin-top:6px;color:#6e839c;font-size:12px}
@media(max-width:480px){
 .action-dialog{padding:18px;border-radius:12px}
 .dialog-heading{gap:9px}
 .dialog-symbol{flex-basis:36px;width:36px;height:36px}
 .action-dialog h2{font-size:19px}
 .dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
 .dialog-actions .button{width:100%;white-space:normal;text-align:center}
}
@media(prefers-reduced-motion:reduce){.action-dialog::backdrop{backdrop-filter:none}}

/* v7.4: quiet persistent-transfer recovery hint; no overlay or popup. */
.recovery-hint { margin: 9px 0 3px; padding: 8px 12px; border-radius: 7px; background: #ebf4ff; border: 1px solid #bcd8ff; color: #224c80; font-size: 0.88rem; }

/* v7.4.1: navigation back to public Main, precise big-file progress, and download acknowledgement. */
.header-home-link{color:inherit;text-decoration:none;border-radius:5px}
.brand-home{display:inline-flex;gap:10px;align-items:center}
.heading-home{color:inherit}
.header-home-link:hover .eyebrow,.heading-home:hover{text-decoration:underline;text-underline-offset:4px}
.header-home-link:focus-visible{outline:3px solid #73b7ff;outline-offset:3px}
#progress-label{font-variant-numeric:tabular-nums}
.download-status{position:fixed;z-index:30;top:16px;right:16px;width:min(410px,calc(100vw - 32px));display:flex;align-items:flex-start;gap:12px;padding:14px 13px 14px 15px;background:#fff;border:1px solid #bdd6f3;border-left:4px solid #2673c6;border-radius:11px;box-shadow:0 9px 30px #172f512e;color:#273e58}
.download-status-spinner{width:19px;height:19px;margin-top:2px;flex:0 0 19px;border:2.5px solid #d6e9fb;border-top-color:#2570cb;border-radius:50%;animation:download-request-spin .85s linear infinite}
@keyframes download-request-spin{to{transform:rotate(360deg)}}
.download-status-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.4}
.download-status-copy strong{font-size:13px;color:#194e84}
.download-status-copy>span{overflow-wrap:anywhere;font-weight:650}
.download-status-copy small{font-size:11px;line-height:1.45;color:#658098}
.download-status-close{flex:0 0 27px;width:27px;height:27px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#6785a1;font-size:21px;line-height:1}
.download-status-close:hover{background:#edf4fd;border-color:#d5e4f4}
.download-status-close:focus-visible{outline:3px solid #73b7ff;outline-offset:2px}
@media(max-width:480px){.download-status{top:9px;right:9px;width:calc(100vw - 18px);padding:12px;gap:9px}}
@media(prefers-reduced-motion:reduce){.download-status-spinner{animation:none;border-color:#2570cb}}
