.tiktok-downloader-container{width:100%;margin:0;padding:0;}
.tiktok-downloader-wrapper{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);padding:70px 20px 60px;color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;}
.tiktok-downloader-wrapper h2{margin:0 0 12px;font-size:44px;font-weight:700;color:#1a1a1a;}
.tiktok-downloader-wrapper>p{margin:0 0 35px;font-size:17px;opacity:.95;max-width:620px;}
.input-group{display:flex;gap:10px;max-width:820px;width:100%;background:#fff;border-radius:12px;padding:8px;box-shadow:0 10px 40px rgba(0,0,0,.18);}
.tiktok-input{flex:1;padding:16px 20px;border:none;border-radius:8px;font-size:16px;color:#333;outline:none;}
.tiktok-input::placeholder{color:#aaa;}
.download-btn{padding:16px 36px;background:#10b981;border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;white-space:nowrap;}
.download-btn:hover{opacity:.88;}
.download-btn:disabled{background:#9ca3af;cursor:not-allowed;}
.loading{text-align:center;padding:30px;background:rgba(255,255,255,.12);border-radius:12px;margin-top:20px;max-width:820px;width:100%;}
.spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid #fff;border-radius:50%;width:48px;height:48px;animation:spin 1s linear infinite;margin:0 auto 12px;}
@keyframes spin{to{transform:rotate(360deg)}}
.result{background:#fff;border-radius:16px;padding:28px;margin:28px auto 0;max-width:920px;width:100%;color:#333;box-shadow:0 10px 40px rgba(0,0,0,.15);}
.error{background:#fee2e2;border:2px solid #fca5a5;border-radius:12px;padding:20px;margin:24px auto 0;max-width:820px;width:100%;color:#991b1b;text-align:center;}
.info-box{background:rgba(255,255,255,.15);border-radius:12px;padding:22px 26px;margin-top:36px;max-width:820px;width:100%;text-align:left;}
.info-box p{margin:0 0 8px;text-align:left!important;}
.info-box ol{margin:0;padding-left:20px;}
.info-box li{margin:8px 0;line-height:1.6;}
.sv-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #dbeafe;}
.sv-user{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.sv-username{font-size:18px;font-weight:700;color:#1f2937;}
.sv-badge-count{background:#dbeafe;color:#1e40af;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:600;}
.sv-anon-badge{background:#f0fdf4;color:#166534;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:600;}
.sv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px;}
.sv-card{border-radius:14px;overflow:hidden;background:#f9fafb;box-shadow:0 2px 12px rgba(0,0,0,.1);transition:transform .25s,box-shadow .25s;}
.sv-card:hover{transform:translateY(-5px);box-shadow:0 10px 28px rgba(0,0,0,.18);}
.sv-thumb-wrap{position:relative;aspect-ratio:9/16;cursor:pointer;background:#e5e7eb;overflow:hidden;}
.sv-thumb{width:100%;height:100%;object-fit:cover;display:block;}
.sv-dur{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;padding:2px 7px;border-radius:6px;}
.sv-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;opacity:0;background:rgba(0,0,0,.3);transition:opacity .2s;}
.sv-thumb-wrap:hover .sv-play{opacity:1;}
.sv-card-footer{padding:10px 10px 12px;}
.sv-size{display:block;font-size:11px;color:#9ca3af;margin-bottom:6px;text-align:center;}
.sv-btns{display:flex;gap:7px;}
.sv-btn-watch,.sv-btn-dl{flex:1;padding:9px 4px;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:.2s;}
.sv-btn-watch{background:#10b981;color:#fff;}
.sv-btn-watch:hover{opacity:.85;}
.sv-btn-dl{background:#f3f4f6;color:#374151;}
.sv-btn-dl:hover{background:#e5e7eb;}
.sv-wm-note{text-align:center;font-size:12px;color:#9ca3af;margin-top:16px;}
.sv-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:99999;display:flex;align-items:center;justify-content:center;padding:12px;}
.sv-modal-box{position:relative;max-width:420px;width:100%;background:#000;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6);}
.sv-modal-media{width:100%;max-height:78vh;object-fit:contain;display:block;}
.sv-modal-close{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.7);color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:22px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;}
.sv-modal-close:hover{background:rgba(255,255,255,.2);}
.sv-modal-counter{position:absolute;top:14px;left:14px;background:rgba(0,0,0,.65);color:#fff;font-size:13px;padding:4px 10px;border-radius:20px;z-index:10;}
.sv-modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.55);color:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:28px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;}
.sv-modal-nav:hover{background:rgba(255,255,255,.2);}
.sv-modal-prev{left:10px;}
.sv-modal-next{right:10px;}
.sv-modal-footer{padding:14px 16px;background:#111;}
.sv-modal-title{color:#d1d5db;font-size:13px;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sv-modal-dl-btn{width:100%;padding:13px;border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;background:#10b981;}
.sv-modal-dl-btn:hover{opacity:.88;}
.sv-toast{position:fixed;top:22px;right:22px;background:#10b981;color:#fff;padding:14px 24px;border-radius:10px;font-weight:600;z-index:999999;box-shadow:0 5px 20px rgba(0,0,0,.3);}
@media(max-width:600px){
  .tiktok-downloader-wrapper{padding:50px 14px 40px!important;}
  .tiktok-downloader-wrapper h2{font-size:28px!important;}
  .tiktok-downloader-wrapper>p{font-size:14px!important;}
  .input-group{flex-direction:column!important;gap:8px!important;}
  .download-btn{width:100%!important;padding:15px!important;}
  .sv-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;}
  .sv-modal-box{max-width:98vw;}
  .sv-header{flex-direction:column;align-items:flex-start;}
}
