
.uploader-app{--blue:#006f9e;--blue2:#0e3348;--blue-soft:#eaf6fc;--orange:#eb6e24;--text:#24262a;--muted:#687078;--line:#dfe4e7;--soft:#f8f6f1;--ok:#17824b;--danger:#b42318}.uploader-app *{box-sizing:border-box}.uploader-app{scroll-behavior:smooth}.uploader-app{margin:0;font-family:Inter,Arial,sans-serif;background:var(--soft);color:var(--text);border-top:5px solid var(--blue)}.uploader-app button,.uploader-app input,.uploader-app textarea{font:inherit}
.uploader-app .wrap{width:min(960px,calc(100% - 38px));margin:0 auto;padding:34px 0 36px}.uploader-app .brand{display:flex;align-items:center;gap:18px;margin-bottom:30px;padding-bottom:19px;border-bottom:1px solid #edf0f2;position:relative}.uploader-app .brand-logo{display:inline-flex;align-items:center;text-decoration:none}.uploader-app .brand-logo img{display:block;width:min(270px,58vw);height:auto}.uploader-app .brand-word{font-size:25px;line-height:1;color:#606a70;font-weight:300;letter-spacing:-.02em;transform:translateY(2px)}.uploader-app .admin-top{margin-left:auto;display:flex;align-items:center;gap:8px;position:relative}.uploader-app .admin-badge{font-size:11px;font-weight:800;color:var(--blue);border:1px solid #b9dcea;padding:8px 10px;background:#f7fcfe}.uploader-app .admin-login-link,.uploader-app .admin-logout{border:1px solid #b8d9e8;background:#fff;color:var(--blue);font-size:12px;font-weight:800;padding:9px 13px;cursor:pointer;border-radius:2px;transition:.15s}.uploader-app .admin-login-link:hover,.uploader-app .admin-logout:hover{background:var(--blue);border-color:var(--blue);color:#fff}.uploader-app .admin-login-box{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:20;align-items:center;gap:7px;padding:10px;background:#fff;border:1px solid #cddde5;box-shadow:0 8px 22px rgba(20,50,65,.12);white-space:nowrap}.uploader-app .admin-login-box.show{display:flex}.uploader-app .admin-login-box input{width:185px;height:36px;padding:0 9px;font-size:12px}.uploader-app .admin-login-box button{height:36px;border:0;background:var(--blue);color:#fff;font-size:11px;font-weight:850;padding:0 12px;cursor:pointer}.uploader-app .admin-login-msg{position:absolute;right:0;top:calc(100% + 4px);color:var(--danger);font-size:10px;white-space:nowrap}
.uploader-app .card{background:#fff}.uploader-app .card-body{padding:0}.uploader-app .dropzone{border:3px dashed #90c9e4;background:#f9fdff;min-height:258px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:29px 26px;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}.uploader-app .dropzone:hover,.uploader-app .dropzone.drag{border-color:var(--blue);background:#eef9fe;box-shadow:inset 0 0 0 1px rgba(0,136,204,.08)}.uploader-app .dropzone.drag{border-style:solid}.uploader-app .dropzone.has-files{justify-content:flex-start;border-style:solid;border-color:#7fbfdc;background:#f9fdff}.uploader-app .drop-intro{width:100%}.uploader-app .dropzone.has-files .drop-intro{padding-bottom:18px;border-bottom:1px solid #d7eaf3}.uploader-app .drop-icon{width:62px;height:62px;margin:0 auto 13px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:30px;font-weight:500;box-shadow:0 6px 18px rgba(0,136,204,.18)}.uploader-app .drop-title{font-weight:820;font-size:19px}.uploader-app .drop-sub{font-size:13px;color:var(--muted);margin-top:6px}.uploader-app .choose{display:inline-block;margin-top:15px;border:1px solid var(--blue);background:#fff;color:var(--blue);padding:10px 17px;font-size:13px;font-weight:800;border-radius:2px}.uploader-app .choose:hover{background:var(--blue-soft)}.uploader-app #fileInput{display:none}
.uploader-app .file-list{width:100%;margin:18px 0 0;display:flex;flex-direction:column;gap:11px;text-align:left}.uploader-app .file-list:empty{display:none}.uploader-app .file-row{border:1px solid #c9e1ec;background:#fff;padding:14px 15px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;box-shadow:0 2px 9px rgba(20,50,65,.04)}.uploader-app .file-row.uploading{border-color:#72bddf}.uploader-app .file-row.done{border-color:#abd4bd}.uploader-app .file-row.error,.uploader-app .file-row.cancelled{border-color:#e4c8c4}.uploader-app .file-main{min-width:0}.uploader-app .file-name{font-size:14px;font-weight:820;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#20282c}.uploader-app .file-meta{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-top:7px;font-size:12px;color:var(--muted)}.uploader-app .file-transfer{font-variant-numeric:tabular-nums;color:#4f5b61}.uploader-app .file-state{font-weight:850;color:#4d5c64}.uploader-app .file-row.uploading .file-state{color:var(--blue)}.uploader-app .file-row.done .file-state{color:var(--ok)}.uploader-app .file-row.error .file-state,.uploader-app .file-row.cancelled .file-state{color:var(--danger)}.uploader-app .mini-track{height:18px;background:#dbe7ec;margin-top:11px;overflow:hidden;border-radius:9px;box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}.uploader-app .mini-bar{height:100%;background:linear-gradient(90deg,#0088cc,#21a8e7);width:0%;transition:width .22s ease-out;border-radius:9px;position:relative}.uploader-app .mini-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.40),transparent);transform:translateX(-100%);animation:shine 1.5s infinite}@keyframes shine{to{transform:translateX(100%)}}.uploader-app .file-row.done .mini-bar{background:var(--ok)}.uploader-app .file-row.done .mini-bar:after,.uploader-app .file-row.error .mini-bar:after,.uploader-app .file-row.cancelled .mini-bar:after{display:none}.uploader-app .file-row.error .mini-bar,.uploader-app .file-row.cancelled .mini-bar{background:#c9cfd2}.uploader-app .file-actions{display:flex;gap:7px;align-items:center}.uploader-app .file-action{border:1px solid #cbd5da;background:#fff;color:#4c5b63;font-size:12px;font-weight:800;cursor:pointer;padding:9px 11px;min-width:88px;border-radius:2px}.uploader-app .file-action:hover{border-color:var(--blue);color:var(--blue);background:#f7fcff}.uploader-app .file-action.cancel{border-color:#dfb7b2;color:#9b3d36}.uploader-app .file-action.cancel:hover{background:#fff7f6;border-color:#c7867f}.uploader-app .file-action.copy{border-color:#9fcce0;color:var(--blue)}.uploader-app .file-action:disabled{opacity:.45;cursor:not-allowed}
.uploader-app .form-section{border-top:1px solid var(--line);padding-top:26px;margin-top:28px}.uploader-app .form-title{font-size:15px;font-weight:820;margin:0 0 15px}.uploader-app .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.uploader-app .field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#535b60;font-weight:650}.uploader-app .field-label{display:block}.uploader-app .field.wide{grid-column:1/-1}.uploader-app .req{color:var(--danger)}.uploader-app input,.uploader-app textarea{width:100%;border:1px solid #cdd3d7;background:#fff;color:var(--text);border-radius:2px;outline:none;transition:border-color .15s,box-shadow .15s}.uploader-app input{height:45px;padding:0 12px}.uploader-app textarea{min-height:102px;padding:11px 12px;resize:vertical;line-height:1.45}.uploader-app input:focus,.uploader-app textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,136,204,.10)}.uploader-app .hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.uploader-app .actions{display:flex;align-items:center;gap:14px;margin-top:22px}.uploader-app .send-btn{border:0;background:var(--blue);color:#fff;padding:13px 22px;min-height:46px;font-weight:850;cursor:pointer;transition:.15s;border-radius:2px}.uploader-app .send-btn:hover{background:var(--blue2)}.uploader-app .send-btn:disabled{opacity:.45;cursor:not-allowed}.uploader-app .status-text{font-size:12px;color:var(--muted)}
.uploader-app .internal-info{margin-top:22px;padding:14px 15px;border-left:4px solid var(--blue);background:#f5fafd;color:#53636b;font-size:12px;line-height:1.5}.uploader-app .internal-info b{color:#26353c}.uploader-app .success-box{display:none;position:fixed;inset:0;z-index:1000;background:rgba(20,34,42,.48);align-items:center;justify-content:center;padding:20px}.uploader-app .success-box.show{display:flex}.uploader-app .success-dialog{width:min(560px,100%);background:#fff;border-top:5px solid var(--blue);box-shadow:0 22px 70px rgba(0,0,0,.22);padding:26px;position:relative}.uploader-app .success-close{position:absolute;right:13px;top:11px;border:0;background:transparent;color:#6f7b81;font-size:25px;cursor:pointer}.uploader-app .success-title{display:flex;gap:10px;align-items:center;color:var(--ok);font-weight:900;font-size:19px;padding-right:30px}.uploader-app .check{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:#fff}.uploader-app .success-dialog p{font-size:14px;line-height:1.6;margin:13px 0 0}.uploader-app .success-dialog small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:10px}.uploader-app .admin-files{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}.uploader-app .admin-files-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.uploader-app .admin-files-head h3{margin:0;font-size:16px}.uploader-app .admin-refresh{border:1px solid #cbd5da;background:#fff;color:var(--blue);font-size:11px;font-weight:800;padding:7px 10px;cursor:pointer}.uploader-app .admin-file-table{display:flex;flex-direction:column;gap:8px}.uploader-app .admin-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #dbe4e8;padding:11px 12px;background:#fafcfd}.uploader-app .admin-file-name{font-size:13px;font-weight:820;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uploader-app .admin-file-meta{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.45}.uploader-app .admin-file-actions{display:flex;gap:6px}.uploader-app .admin-file-actions button{border:1px solid #cbd5da;background:#fff;color:#4c5b63;font-size:11px;font-weight:800;padding:7px 9px;cursor:pointer}.uploader-app .admin-file-actions .download{border-color:#8fc9e2;color:var(--blue)}.uploader-app .admin-file-actions .delete{border-color:#e0bbb6;color:#a2463e}.uploader-app .admin-empty{font-size:12px;color:var(--muted);padding:12px 0}.uploader-app .error-box{display:none;margin-top:18px;padding:13px 14px;border:1px solid #efc1bc;background:#fff8f7;color:var(--danger);font-size:12px;line-height:1.45}.uploader-app .error-box.show{display:block}
@media(max-width:640px){.uploader-app .wrap{width:min(100% - 20px,960px);padding:22px 0 28px}.uploader-app .brand{gap:10px;margin-bottom:22px}.uploader-app .brand-logo img{width:min(205px,51vw)}.uploader-app .brand-word{font-size:19px}.uploader-app .admin-top{margin-left:auto}.uploader-app .admin-badge{display:none}.uploader-app .admin-login-link,.uploader-app .admin-logout{padding:8px 10px;font-size:11px}.uploader-app .admin-login-box{right:0;flex-direction:column;align-items:stretch;min-width:220px}.uploader-app .admin-login-box input{width:100%}.uploader-app .admin-login-msg{position:static;white-space:normal;margin-top:2px}.uploader-app .dropzone{min-height:230px;padding:22px 14px}.uploader-app .file-row{grid-template-columns:1fr}.uploader-app .file-actions{width:100%}.uploader-app .file-action{flex:1}.uploader-app .admin-file-row{grid-template-columns:1fr}.uploader-app .admin-file-actions{width:100%}.uploader-app .admin-file-actions button{flex:1}.uploader-app .form-grid{grid-template-columns:1fr}.uploader-app .field.wide{grid-column:auto}.uploader-app .actions{align-items:stretch;flex-direction:column}.uploader-app .send-btn{width:100%}.uploader-app .status-text{text-align:center}}
.uploader-app .card{border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 45px rgba(14,51,72,.08)}.uploader-app .card-body{padding:24px}.uploader-app .dropzone{border-radius:12px}.uploader-app .drop-icon{background:var(--orange);box-shadow:0 6px 18px rgba(235,110,36,.18)}.uploader-app .choose,.uploader-app .file-row,.uploader-app input,.uploader-app textarea,.uploader-app .send-btn,.uploader-app .admin-file-row,.uploader-app .success-dialog{border-radius:8px}.uploader-app .admin-login-link,.uploader-app .admin-logout{text-decoration:none;display:inline-flex;align-items:center}.uploader-app .brand-logo img{width:min(225px,55vw)}

.uploader-app{background:transparent;border:0}.uploader-app .wrap{width:min(1120px,calc(100% - 40px));padding:24px 0 72px}.uploader-app .upload-intro{padding:24px 0 32px;max-width:760px}.uploader-app .upload-intro h1{font-size:clamp(32px,4vw,52px);margin:12px 0 20px}.uploader-app .upload-intro p{font-size:17px;line-height:1.8}.uploader-app .field,.uploader-app .drop-sub,.uploader-app .choose,.uploader-app .status-text,.uploader-app .file-name{font-size:14px}.uploader-app .form-title{font-size:19px}.uploader-app .card{box-shadow:none;border-radius:12px}.uploader-app .card-body{padding:clamp(20px,4vw,40px)}.uploader-app .brand{margin-bottom:16px}.uploader-app .brand-word{font-size:22px}.uploader-app .upload-privacy{font-size:14px;line-height:1.7;margin:20px 0 0}
/* Customer uploads: multi-select is rendered only inside the authenticated backend. */
.uploader-app .admin-bulk{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 0 18px;font-size:13px}.uploader-app .admin-bulk label{display:flex;align-items:center;gap:8px;cursor:pointer}.uploader-app .admin-bulk input,.uploader-app .admin-file-select input{width:18px;height:18px;padding:0;accent-color:#006f9e}.uploader-app .admin-bulk button{margin-left:auto;border:1px solid #dfb7b2;background:#fff7f6;color:#9b3d36;border-radius:6px;padding:10px 14px;font-weight:650}.uploader-app .admin-bulk button:disabled{opacity:.45;cursor:not-allowed}.uploader-app .admin-file-row{grid-template-columns:22px minmax(0,1fr) auto}.uploader-app .admin-file-select{display:flex;align-items:center}.uploader-app .admin-file-info{min-width:0}.uploader-app #adminDeleteStatus{font-size:13px;color:#17824b;margin-bottom:12px}.uploader-app input:focus-visible{outline:2px solid #006f9e;outline-offset:3px}@media(max-width:640px){.uploader-app .admin-file-row{grid-template-columns:22px minmax(0,1fr)}.uploader-app .admin-file-actions{grid-column:2}.uploader-app .admin-bulk button{margin-left:0;width:100%}}

.uploader-app .admin-zip-group{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#eaf6fc;border:1px solid #c5dfed;border-radius:8px;margin-bottom:10px}.uploader-app .admin-zip-group strong{font-size:13px}.uploader-app .admin-zip-group span{display:block;font-size:12px;color:#536875}.uploader-app .admin-zip-group button{background:#006f9e;color:#fff;border:0;border-radius:5px;padding:11px 14px;font-size:12px;font-weight:650}.uploader-app #successZip a{display:inline-block;background:#006f9e;color:#fff;border-radius:6px;padding:12px 16px;font-weight:650}@media(max-width:520px){.uploader-app .admin-zip-group{align-items:stretch;flex-direction:column}}

/* Native top-layer dialogs stay clickable without scrolling, including iOS Safari. */
.uploader-app dialog.success-box{position:fixed;inset:0;margin:auto;width:min(580px,calc(100% - 24px));height:auto;max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:14px;background:#fff;color:#193b50;overflow:auto}
.uploader-app dialog.success-box[open]{display:block}.uploader-app dialog.success-box::backdrop{background:#142f45aa}
.uploader-app .success-dialog{width:100%;padding:38px 26px 26px;box-shadow:none}
.uploader-app .success-close{right:8px;top:8px;width:48px;height:48px;font-size:30px;touch-action:manipulation;z-index:1}
.uploader-app .success-title{padding-right:30px;font-size:23px;line-height:1.3}
.uploader-app .success-dialog p{font-size:16px}.uploader-app .success-dialog small{font-size:13px}
.uploader-app .success-done{display:block;width:100%;min-height:52px;margin-top:22px;font-size:17px;touch-action:manipulation}
.uploader-app .upload-sending h2{font-size:27px}.uploader-app .upload-sending progress{width:100%;height:20px;margin:20px 0;accent-color:#006f9e}
