/* Wopro Cloud — Poslat zásilku — Light theme + animations */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif;background:#f8fafc;color:#1e293b;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
body.download-page{background:#f8fafc}

/* ── Top bar ── */
.send-top{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;position:fixed;top:0;left:0;right:0;z-index:100;background:#fff;border-bottom:1px solid #e2e8f0}
.send-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:#1e293b;font-weight:700;font-size:15px}
.send-top-btn{padding:6px 16px;background:#2563eb;color:#fff;border-radius:6px;text-decoration:none;font-size:12px;font-weight:600;transition:background .15s}
.send-top-btn:hover{background:#1d4ed8}

/* ── App ── */
.send-app{min-height:100vh;display:flex;flex-direction:column}

/* ── Steps ── */
.send-step{display:none;flex:1;align-items:center;justify-content:center;padding:80px 24px 24px}
.send-step.active{display:flex;animation:stepIn .5s cubic-bezier(.22,1,.36,1)}
.send-step.exit{animation:stepOut .3s ease forwards}
@keyframes stepIn{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes stepOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}

.step-content{max-width:560px;width:100%;margin:0 auto}
.step-title{font-size:26px;font-weight:800;text-align:center;margin-bottom:8px;color:#1e293b}
.step-sub{text-align:center;color:#64748b;font-size:14px;margin-bottom:28px}

/* ── Drop zone ── */
.drop-zone{border:2px dashed #cbd5e1;border-radius:16px;padding:48px 32px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.drop-zone:hover{border-color:#2563eb;background:rgba(37,99,235,.03);transform:scale(1.01)}
.drop-zone.drag-over{border-color:#2563eb;background:rgba(37,99,235,.06);transform:scale(1.02)}
.drop-icon{color:#2563eb;margin-bottom:16px;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.drop-btn{padding:12px 32px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:background .15s,transform .1s}
.drop-btn:hover{background:#1d4ed8;transform:scale(1.03)}

/* ── Step 2 ── */
.step2-layout{max-width:560px}

/* ── Upload circle ── */
.upload-circle-wrap{display:flex;flex-direction:column;align-items:center;margin-bottom:28px;animation:fadeUp .5s .1s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.upload-circle{position:relative;width:150px;height:150px;margin-bottom:14px}
.upload-ring{width:100%;height:100%;transform:rotate(-90deg)}
.upload-ring-bg{fill:none;stroke:#e2e8f0;stroke-width:8}
.upload-ring-fill{fill:none;stroke:#2563eb;stroke-width:8;stroke-linecap:round;stroke-dasharray:339.292;stroke-dashoffset:339.292;transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}
.upload-circle-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.upload-pct{font-size:34px;font-weight:900;color:#1e293b;line-height:1;transition:color .3s}
.upload-detail{font-size:11px;color:#64748b;margin-top:4px;max-width:120px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.upload-stats{display:flex;gap:20px;font-size:12px;color:#64748b;animation:fadeUp .5s .2s both}
.upload-stat-label{color:#94a3b8;margin-right:3px}
.upload-stats span:not(.upload-stat-label){color:#1e293b;font-weight:600;font-variant-numeric:tabular-nums}

/* Connecting state — pulsing + rotating ring */
.upload-circle.connecting .upload-pct{animation:pulse 1.5s ease-in-out infinite;font-size:16px}
.upload-circle.connecting .upload-ring{animation:ringSpin 2s linear infinite}
.upload-circle.connecting .upload-ring-fill{stroke:#2563eb;stroke-dashoffset:280;stroke-dasharray:80 260}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes ringSpin{to{transform:rotate(270deg)}}

/* Uploading state — smooth ring fill */
.upload-circle.uploading .upload-ring{animation:none;transform:rotate(-90deg)}

/* Done state — green */
.upload-circle.done .upload-ring-fill{stroke:#22c55e;transition:stroke .5s}
.upload-circle.done .upload-pct{color:#22c55e;animation:bounceNum .4s ease}
.upload-circle.done .upload-ring{animation:none;transform:rotate(-90deg)}
@keyframes bounceNum{0%{transform:scale(1)}50%{transform:scale(1.15)}100%{transform:scale(1)}}

/* ── Form ── */
.send-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.04);animation:fadeUp .5s .3s both}
.send-field{display:flex;align-items:center;border-bottom:1px solid #f1f5f9;padding:0 20px}
.send-field:last-of-type{border-bottom:none}
.send-field label{flex:0 0 60px;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}
.send-field input{flex:1;border:none;outline:none;padding:14px 0;font-size:14px;font-family:inherit;color:#1e293b;background:transparent}
.send-field input::placeholder{color:#cbd5e1}

/* ── Chips ── */
.send-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;align-items:center;flex:1;min-height:42px}
.send-chips input{border:none!important;outline:none!important;background:transparent!important;font-size:14px;flex:1;min-width:140px;padding:4px 0;color:#1e293b}
.send-chips input::placeholder{color:#cbd5e1}
.send-chip{display:inline-flex;align-items:center;gap:4px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:16px;padding:3px 6px 3px 10px;font-size:13px;color:#475569;animation:chipIn .2s cubic-bezier(.22,1,.36,1)}
.send-chip-x{border:none;background:transparent;color:#94a3b8;cursor:pointer;font-size:16px;padding:0 2px;transition:color .1s}
.send-chip-x:hover{color:#ef4444}
@keyframes chipIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}

/* ── Send button ── */
.send-btn{display:block;width:100%;padding:16px;background:#2563eb;color:#fff;border:none;border-radius:0 0 12px 12px;font-size:14px;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:background .15s,opacity .2s,transform .1s}
.send-btn:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}
.send-btn:disabled{opacity:.35;cursor:not-allowed}

/* ── File list ── */
.upload-file-list{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.03);animation:fadeUp .5s .4s both}
.file-list-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;background:transparent;border:none;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:color .15s}
.file-list-toggle:hover{color:#1e293b}
.file-list-body{max-height:200px;overflow-y:auto;padding:0 16px 8px}
.fl-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;border-bottom:1px solid #f8fafc}
.fl-item:last-child{border-bottom:none}
.fl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569}
.fl-size{color:#94a3b8;flex-shrink:0}
.fl-ok{color:#22c55e}
.fl-rm{border:none;background:transparent;color:#cbd5e1;cursor:pointer;font-size:12px;opacity:0;transition:opacity .1s}
.fl-item:hover .fl-rm{opacity:1}
.fl-rm:hover{color:#ef4444}

/* ── Done ── */
.done-icon{font-size:56px;margin-bottom:16px;animation:bounceIn .6s cubic-bezier(.22,1,.36,1)}
@keyframes bounceIn{from{opacity:0;transform:scale(.5)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}
.done-title{font-size:24px;font-weight:800;color:#1e293b;margin-bottom:8px}
.done-sub{color:#64748b;font-size:14px;margin-bottom:24px}
.done-btn{display:inline-block;padding:14px 36px;background:#2563eb;color:#fff;text-decoration:none;border-radius:8px;font-weight:700;font-size:14px;transition:background .15s}
.done-btn:hover{background:#1d4ed8}
.done-again{background:none;border:none;color:#2563eb;cursor:pointer;font-weight:600;font-size:13px}

/* ── Promo ── */
.send-promo{text-align:center;padding:20px;font-size:12px;color:#94a3b8}
.send-promo a{color:#2563eb;text-decoration:none;font-weight:600}

/* ── Download page ── */
.download-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:80px 24px 24px}
.download-card{max-width:560px;width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;width:100%;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.download-header{display:flex;align-items:center;gap:16px;padding:24px}
.download-icon{font-size:36px}
.download-title{font-size:18px;font-weight:700;color:#1e293b;margin:0}
.download-meta{font-size:13px;color:#64748b;margin:4px 0 0}
.download-message{padding:12px 16px;margin:0 24px 16px;background:#f8fafc;border-radius:6px;border-left:3px solid #2563eb}
.download-message p{font-size:14px;color:#475569;line-height:1.5;margin:0}
.download-files{border-top:1px solid #e2e8f0}
.download-file-item{display:flex;align-items:center;gap:10px;padding:12px 24px;border-bottom:1px solid #f8fafc}
.download-file-item:last-child{border-bottom:none}
.download-file-name{flex:1;font-size:14px;font-weight:500;color:#1e293b;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.download-file-size{font-size:12px;color:#94a3b8;flex-shrink:0}
.download-file-btn{padding:6px 16px;background:#2563eb;color:#fff;text-decoration:none;border-radius:6px;font-size:12px;font-weight:600;flex-shrink:0;transition:background .15s}
.download-file-btn:hover{background:#1d4ed8}
.download-error{text-align:center;padding:48px 32px}
.download-error h1{font-size:22px;color:#1e293b;margin:16px 0 8px}
.download-error p{color:#64748b}

/* ── Upload notify (reuse from upload-panel.js) ── */
.upload-notify{position:fixed;bottom:24px;right:24px;z-index:9998;width:360px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.1);overflow:hidden;animation:notifyIn .25s ease}
@keyframes notifyIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.upload-notify-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:#f8fafc}
.upload-notify-title{font-weight:700;font-size:13px}
.upload-notify-speed{font-size:12px;color:#2563eb;font-weight:600;margin-left:4px}
.upload-notify-btns{display:flex;gap:2px}
.upload-notify-toggle,.upload-notify-close{width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#94a3b8;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.upload-notify-toggle:hover{background:rgba(0,0,0,.05);color:#1e293b}
.upload-notify-close:hover{background:rgba(239,68,68,.1);color:#ef4444}
.upload-notify-connecting{padding:8px 16px;font-size:12px;color:#2563eb;background:rgba(37,99,235,.04);border-bottom:1px solid #e2e8f0;text-align:center}
.upload-notify-list{max-height:300px;overflow-y:auto;padding:6px 0}
.upload-notify-item{display:flex;align-items:center;gap:10px;padding:8px 16px;font-size:13px}
.upload-notify-item.done{opacity:.6}
.upload-notify-item.error{color:#ef4444}
.upload-notify-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.upload-notify-progress{display:flex;align-items:center;gap:8px;flex-shrink:0}
.upload-notify-bar{width:80px;height:4px;background:#f1f5f9;border-radius:99px;overflow:hidden;flex-shrink:0}
.upload-notify-fill{height:100%;background:#2563eb;border-radius:99px;transition:width .3s ease}
.upload-notify-pct{font-size:11px;color:#94a3b8;white-space:nowrap;min-width:40px;text-align:right}
.upload-notify-status{font-size:14px;flex-shrink:0}
.upload-notify-error{color:#ef4444;font-size:11px}
.upload-notify-waiting{font-size:11px;color:#94a3b8}
.upload-notify-cancel-item{width:22px;height:22px;border:none;border-radius:50%;background:transparent;color:#94a3b8;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:opacity .1s}
.upload-notify-item:hover .upload-notify-cancel-item{opacity:1}
.upload-notify-cancel-item:hover{background:rgba(239,68,68,.1);color:#ef4444}

/* ══════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════ */

/* ── Tablet (≤768px) ── */
@media(max-width:768px){
  .send-step{padding:68px 16px 16px}
  .step-content,.step2-layout{max-width:100%}
  .step-title{font-size:22px}
  .step-sub{font-size:13px;margin-bottom:20px}
  .drop-zone{padding:32px 20px}
  .upload-circle{width:130px;height:130px}
  .upload-pct{font-size:28px}
  .upload-stats{gap:16px;font-size:12px}
  .send-form{margin-bottom:12px}
  .download-wrap{padding:68px 16px 16px}
  .download-header{padding:20px;gap:12px}
  .download-title{font-size:16px}
  .download-file-item{padding:10px 16px}
}

/* ── Mobile (≤600px) ── */
@media(max-width:600px){
  /* Top bar */
  .send-top{padding:8px 12px}
  .send-top-btn{padding:5px 12px;font-size:11px}
  .send-logo img{height:18px!important}
  .send-logo span{font-size:13px}

  /* Steps */
  .send-step{padding:54px 12px 12px}
  .step-title{font-size:18px}
  .step-sub{font-size:12px;margin-bottom:14px;padding:0 8px}

  /* Drop zone */
  .drop-zone{padding:24px 16px;border-radius:12px}
  .drop-icon svg{width:36px;height:36px}
  .drop-btn{padding:10px 24px;font-size:13px;width:100%}

  /* Upload circle */
  .upload-circle-wrap{margin-bottom:16px}
  .upload-circle{width:100px;height:100px}
  .upload-pct{font-size:22px}
  .upload-detail{font-size:10px;max-width:80px}
  .upload-stats{flex-direction:column;gap:3px;text-align:center;font-size:11px}

  /* Form */
  .send-form{border-radius:10px}
  .send-field{flex-direction:column;align-items:stretch;padding:10px 14px}
  .send-field label{margin-bottom:2px;font-size:10px}
  .send-field input{padding:8px 0;font-size:14px}
  .send-chips{min-height:36px}
  .send-chips input{font-size:14px;min-width:0;width:100%}
  .send-chip{font-size:12px;padding:2px 5px 2px 8px}
  .send-btn{padding:14px;font-size:13px;border-radius:0 0 10px 10px}

  /* File list */
  .upload-file-list{border-radius:8px}
  .file-list-toggle{padding:8px 12px;font-size:11px}
  .fl-item{font-size:11px;padding:5px 0}
  .fl-name{font-size:11px}

  /* Upload notify */
  .upload-notify{left:6px;right:6px;width:auto;bottom:6px;border-radius:10px}
  .upload-notify-header{padding:10px 12px}
  .upload-notify-item{padding:6px 12px;font-size:12px}
  .upload-notify-bar{width:60px}

  /* Done */
  .done-icon{font-size:40px;margin-bottom:12px}
  .done-title{font-size:18px}
  .done-sub{font-size:13px}
  .done-btn{padding:12px 24px;font-size:13px;width:100%;text-align:center}

  /* Download page */
  .download-wrap{padding:54px 12px 12px;align-items:flex-start}
  .download-card{border-radius:10px}
  .download-header{flex-direction:column;text-align:center;padding:20px 16px;gap:8px}
  .download-icon{font-size:28px}
  .download-title{font-size:15px}
  .download-meta{font-size:11px}
  .download-message{margin:0 12px 12px;padding:10px 12px}
  .download-message p{font-size:13px}
  .download-file-item{padding:10px 12px;flex-wrap:wrap;gap:4px}
  .download-file-name{flex:1 1 100%;font-size:13px;white-space:normal;word-break:break-all}
  .download-file-size{font-size:11px}
  .download-file-btn{width:100%;text-align:center;padding:10px;font-size:13px}
  .download-error{padding:32px 16px}
  .download-error h1{font-size:18px}
  .download-error p{font-size:13px}

  /* Promo */
  .send-promo{font-size:11px;padding:14px 12px}
}

/* ── Small phone (≤380px) ── */
@media(max-width:380px){
  .send-step{padding:48px 8px 8px}
  .step-title{font-size:16px}
  .step-sub{font-size:11px}
  .upload-circle{width:80px;height:80px}
  .upload-pct{font-size:18px}
  .upload-detail{font-size:9px;max-width:60px}
  .upload-stats{font-size:10px}
  .send-field{padding:8px 10px}
  .send-field input{font-size:13px}
  .drop-zone{padding:20px 10px}
  .drop-btn{padding:8px 16px;font-size:12px}
  .download-wrap{padding:48px 8px 8px}
  .download-header{padding:16px 12px}
  .download-file-item{padding:8px 10px}
}
