@import url('https://fonts.googleapis.com/css2?family=Prompt:wght@400;500;600;700&display=swap');
:root{font-family:'Prompt',system-ui,sans-serif;color:#17314a;background:#f7fbfd;--blue:#00c0fa;--ink:#17314a;--muted:#72889a;--border:#dfeef5;--white:#fff;--shadow:0 15px 55px #156e9d11}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 60% 45% at 85% 0%,#dcf8ff 0%,transparent 65%),radial-gradient(ellipse 55% 45% at 0% 90%,#edf8ff 0%,transparent 65%),#f8fbfd}button,input{font:inherit}button{cursor:pointer;border:0;transition:transform .18s,box-shadow .18s,background .2s}button:active{transform:scale(.965)}button:disabled{opacity:.55;cursor:wait;transform:none}a{color:#009fcf;text-decoration:none}a:hover{text-decoration:underline}
.shell{width:min(880px,calc(100% - 28px));margin:0 auto;padding-bottom:70px}.nav{display:flex;justify-content:space-between;align-items:center;padding:22px 0 28px;gap:8px}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:700;white-space:nowrap}.brand-ico{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#00c0fa,#287be7);display:grid;place-items:center;color:#fff;font-size:23px;box-shadow:0 10px 25px #00a6ef33}.nav-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.nav .pill{padding:9px 13px;background:#fff;border:1px solid var(--border);border-radius:99px;color:#42637a;font-size:13px}
.hero{text-align:center;padding:18px 8px 29px}.eyebrow{color:#009bc9;font-size:12px;font-weight:700;letter-spacing:.08em}.hero h1{font-size:clamp(25px,5vw,38px);line-height:1.3;margin:9px 0}.hero p{margin:0;color:var(--muted);font-size:14px}.panel{background:#fff;border:1px solid #e5f2f9;border-radius:26px;padding:27px;box-shadow:var(--shadow)}.panel+.panel{margin-top:17px}.switch{display:flex;gap:7px;background:#f0f8fb;border-radius:15px;padding:5px;max-width:360px;margin:0 auto 20px}.switch button{flex:1;background:transparent;color:#668396;padding:12px;border-radius:11px;font-weight:600}.switch button.active{background:#fff;color:#009dce;box-shadow:0 5px 17px #245d7217}.upload-zone{position:relative;border:2px dashed #9adcf0;border-radius:22px;padding:35px 20px 30px;text-align:center;background:linear-gradient(140deg,#f8feff,#edfaff);transition:.25s;overflow:hidden}.upload-zone.over{background:#dff7ff;border-color:#00c0fa;transform:scale(1.01)}.upload-zone:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff8 47%,transparent 65%);transform:translateX(-130%);pointer-events:none}.upload-zone:hover:before{animation:shine 1.5s ease}.cloud-icon{height:74px;width:74px;margin:0 auto 12px;border-radius:24px;background:#e0f7ff;display:grid;place-items:center;font-size:35px;box-shadow:inset 0 0 0 1px #bef0ff}.upload-zone h3{font-size:17px;margin:5px 0}.hint{font-size:12px;color:var(--muted);line-height:1.75}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:13px;font-weight:600;padding:12px 18px;min-height:47px}.primary{background:linear-gradient(125deg,#00c0fa,#168eea);color:#fff;box-shadow:0 10px 22px #00aee92a}.primary:hover{box-shadow:0 12px 30px #00aee94d}.secondary{background:#ebf8ff;color:#008fbe}.line{background:#06c755;color:#fff}.outline{background:white;border:1px solid var(--border);color:#4b7187}.full{width:100%}.field{display:block;width:100%;border:1px solid #d9e9f1;border-radius:12px;padding:11px 13px;outline:0;background:#fff;color:var(--ink)}.field:focus{border-color:#00baf0;box-shadow:0 0 0 3px #00baf017}.input-label{font-size:12px;color:#526b80;display:block;margin:17px 0 6px}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spaced{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}.file-list{margin:16px 0;display:grid;gap:10px}.file-row{border:1px solid var(--border);border-radius:15px;padding:12px 14px;background:#fff;display:flex;align-items:center;gap:12px;min-width:0}.file-mark{flex:0 0 42px;height:42px;border-radius:12px;background:#eaf9ff;display:grid;place-items:center;font-size:21px}.file-info{flex:1;min-width:0}.file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-size:13px}.file-meta{font-size:12px;color:var(--muted)}.progress{height:8px;background:#e4f2f8;border-radius:99px;overflow:hidden;position:relative;margin-top:8px}.progress>span{height:100%;display:block;min-width:0;width:0;background:linear-gradient(90deg,#3cc7ed,#008be9);border-radius:99px;position:relative;transition:width .25s}.progress>span:after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent,#ffffff99,transparent);animation:barflow 1.3s linear infinite}.processing{height:30px;width:30px;border:3px solid #d0f5ff;border-top-color:#00b0ea;border-radius:50%;animation:spin .8s linear infinite}.success-mark{width:65px;height:65px;border-radius:50%;margin:10px auto;background:#e6fbef;display:grid;place-items:center;color:#07b46d;font-size:32px;animation:pop .55s cubic-bezier(.2,1.5,.5,1)}.result{margin-top:18px;border-radius:22px;border:1px solid #ccefe4;background:linear-gradient(180deg,#fff,#f3fffa);padding:20px;text-align:center;animation:rise .5s ease}.url{border:1px solid #d9eaf2;padding:13px;border-radius:11px;background:#fff;font-size:12px;word-break:break-all;margin:13px 0;text-align:left}.grid-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.footer{text-align:center;font-size:12px;color:#94a8b4;margin:25px auto}.toast{position:fixed;z-index:10;bottom:22px;left:50%;transform:translate(-50%,130px);transition:transform .28s;background:#183449;color:white;padding:13px 18px;border-radius:13px;max-width:90vw;box-shadow:0 12px 25px #0002;font-size:13px}.toast.visible{transform:translate(-50%,0)}.modal-back{position:fixed;z-index:20;inset:0;background:#11283880;display:grid;place-items:center;padding:14px;backdrop-filter:blur(4px)}.modal{width:min(420px,100%);background:#fff;border-radius:23px;padding:24px;max-height:90vh;overflow:auto;box-shadow:0 30px 80px #16354a44}.modal h2{margin:0 0 15px;font-size:21px}.modal .field{margin-bottom:12px}.link-btn{background:none;border:0;color:#008fc3;font-size:12px;padding:8px}.admin-row{border-bottom:1px solid #eaf1f6;padding:11px 0}.admin-row:last-child{border:0}.admin-list{max-height:460px;overflow:auto}.tag{border-radius:99px;padding:4px 8px;font-size:11px;background:#e8f8ff;color:#008db7}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.thumb{aspect-ratio:1;border-radius:13px;background:#e9f5fb;overflow:hidden;position:relative}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .select-img{position:absolute;top:7px;right:7px;width:23px;height:23px;accent-color:#00b4f0}.preview-video{width:100%;max-height:310px;border-radius:15px;background:#0d1d2a;margin:12px 0}.section-title{font-weight:700;font-size:16px;margin:0 0 12px}.banner{padding:13px;background:#eef9ff;border:1px solid #d9eff9;border-radius:13px;color:#407083;font-size:12px}.spinner-inline{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid #bceef9;border-top-color:#00a3de;vertical-align:-2px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes shine{to{transform:translateX(125%)}}@keyframes barflow{to{transform:translateX(100%)}}@keyframes rise{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:560px){.nav{padding-top:14px;padding-bottom:10px}.brand{font-size:16px}.brand-ico{height:35px;width:35px;font-size:18px}.nav .pill{font-size:11px;padding:8px 9px}.hero{padding:21px 0}.panel{padding:16px;border-radius:20px}.upload-zone{padding:24px 14px}.gallery{gap:6px}.grid-actions{grid-template-columns:1fr}.file-row{padding:10px}.section-title{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* v0.1.1 — mobile-first receiver page, one device-aware Save action */
.share-shell{width:min(700px,calc(100% - 24px));padding-bottom:36px}
.share-nav{padding:17px 0 16px}
.share-panel{padding:23px;min-height:145px}
.share-loading{display:flex;min-height:135px;align-items:center;justify-content:center;gap:13px;color:var(--muted);font-size:14px}
.share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}
.share-title{font-size:clamp(19px,3vw,25px);margin:0 0 5px;line-height:1.4;overflow-wrap:anywhere}
.share-ready{flex-shrink:0;margin-top:3px}
.share-panel .gallery{margin:6px 0 14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.share-panel .gallery.single-photo{grid-template-columns:minmax(0,1fr);max-width:360px}
.share-panel .thumb{display:block;cursor:pointer;border-radius:12px}
.share-panel .thumb:has(input:checked){outline:2px solid #00b8ee;outline-offset:-2px}
.share-panel .select-img{height:22px;width:22px;top:9px;right:9px}
.share-panel .preview-video{margin:2px 0 14px;max-height:460px}
.share-panel .file-list{margin:4px 0 14px}
.share-main-button{min-height:53px;font-size:15px}
.share-wait{display:flex;align-items:center;gap:9px;color:#5f8297;font-size:13px;margin:8px 0 14px}
.share-wait .spinner-inline{flex:0 0 auto}
.share-error{text-align:center;color:#b03a4a;margin:20px auto}
@media(max-width:560px){.share-nav{padding:12px 0}.share-panel{padding:15px;border-radius:19px}.share-title{font-size:19px}.share-panel .gallery{gap:5px}.share-ready{font-size:10px}.share-panel .gallery.single-photo{max-width:100%}}
/* v0.1.1 — unobtrusive animated upload status */
.upload-live{display:flex;align-items:center;justify-content:center;gap:11px;min-height:54px;margin:10px 0;color:#426982;font-size:13px;background:linear-gradient(115deg,#f0fbff,#e8f7fd,#f0fbff);background-size:200% 100%;border:1px solid #d9eef8;border-radius:13px;animation:statusflow 2.8s ease-in-out infinite}
.upload-live .processing{width:21px;height:21px;flex:0 0 auto;border-width:2.5px}
.file-mark svg,.success-mark svg{width:23px;height:23px;stroke:#00a0d1}
.success-mark svg{width:30px;height:30px;stroke:#07b46d}
.cloud-icon{color:#009ed1}
.result .url{margin-top:17px}
@keyframes statusflow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(prefers-reduced-motion:reduce){.upload-live{animation:none}}

/* v0.1.2: all-file upload + friendly expired links */
.gone-panel{margin-top:16px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;min-height:360px;padding:35px 20px}
.gone-panel h1{font-size:clamp(22px,4vw,30px);margin:13px 0 3px;line-height:1.35}
.gone-panel p{font-size:14px;color:var(--muted);margin:8px 0 21px}
.gone-icon{display:grid;place-items:center;width:84px;height:84px;border-radius:25px;color:#00a4d6;background:#e8f8ff}
.gone-action{min-width:170px}
.share-panel .file-row{margin:6px 0;cursor:pointer;position:relative}
.share-panel .file-row .file-name{display:block}
.share-panel .file-row .file-meta{display:block}
.share-panel .select-file{height:22px;width:22px;accent-color:#00b4f0;flex-shrink:0}
.share-panel .thumb .select-file{position:absolute;top:8px;right:8px}
.share-panel .thumb:has(input:checked){outline:2px solid #00b4f0;outline-offset:-2px}
.share-batch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px}
.share-batch button{min-width:130px}
.share-error{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;min-height:200px}
.share-error h2{margin:0;font-size:20px;color:#183449}
.share-panel .gallery{margin-bottom:14px}
@media(max-width:560px){.gone-panel{min-height:350px}.share-batch{flex-wrap:wrap}.share-batch button{flex:1}}

/* v0.1.2: single truthful status while Telegram runs; do not show a misleading 100% bar */
.file-list.processing-files .progress{display:none}
.file-list.processing-files .file-meta{color:#668293}
.upload-live{font-weight:600;min-height:64px;font-variant-numeric:tabular-nums}
.upload-live .processing{animation:spin .85s linear infinite}

/* v0.1.3: browser/app icon and adaptive video playback */
.site-mark{display:block;background:none!important;border:0!important;box-shadow:none!important;border-radius:12px;object-fit:contain;padding:0!important}
.video-preview-block{margin:12px 0 16px}
.share-panel .preview-video{width:100%;display:block;max-height:min(60vh,560px);min-height:150px;object-fit:contain;background:#0e2030;border-radius:15px;margin:10px 0 8px}
.video-fallback{padding:13px;border-radius:12px;background:#edf8fc;color:#47738b;font-size:13px;line-height:1.5;margin:9px 0}
@media(max-width:560px){.video-preview-block{margin:8px 0 12px}.share-panel .preview-video{min-height:140px;max-height:52vh;border-radius:12px}}

/* v0.1.4: unified, correctly-centered application icon on every screen */
.brand .site-mark{display:block;flex:0 0 42px;width:42px;height:42px;aspect-ratio:1/1;object-fit:contain;object-position:center;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;filter:none!important;padding:0!important}
@media(max-width:560px){.brand .site-mark{flex-basis:36px;width:36px;height:36px}}

/* v0.1.7 — compact admin dashboard, paginated history and live Telegram progress */
.admin-top{margin-bottom:16px}.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.admin-kpi{background:#f4fbff;border:1px solid #dceef7;border-radius:14px;padding:11px;display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-kpi span{font-size:11px;color:#648298}.admin-kpi strong{font-size:18px;font-weight:700;white-space:nowrap}.admin-kpi small{font-size:10px;color:#7890a1}
.admin-head-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:23px;margin-bottom:10px;flex-wrap:wrap}
.admin-head-row h3{font-size:15px;margin:0}.tg-badge{font-size:11px;border-radius:99px;padding:5px 10px;background:#eff6fb;color:#67859b}
.tg-badge.healthy{color:#16845c;background:#eafaf1}.tg-badge.offline{color:#b74545;background:#fff0f0}
.transfer-list{max-height:540px;overflow:auto;border:1px solid #e5f0f7;border-radius:15px}
.transfer-item{padding:12px 14px;border-bottom:1px solid #ecf2f7}.transfer-item:last-child{border-bottom:none}
.transfer-item .file-name{font-size:13px}.transfer-detail{margin-top:7px}.transfer-item .progress{margin:7px 0 0}
.tg-state{display:inline-block;flex-shrink:0;border-radius:99px;padding:4px 8px;font-size:10px;background:#eafaf2;color:#16865f;white-space:nowrap}
.tg-sending{background:#e7f5ff;color:#007da8}.tg-queued{background:#f4f7fb;color:#58768a}.tg-failed{background:#fff0eb;color:#ac5541}
.admin-empty{text-align:center;color:#728a9b;padding:20px 12px;font-size:12px}
.admin-history-recent{margin-top:8px}.admin-history-recent details{border:1px solid #e9f0f5;padding:9px 12px;border-radius:12px;color:#55758c;font-size:12px}
.admin-history-recent summary{cursor:pointer}.admin-recent{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #eff4f7;font-size:11px}.admin-recent span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}
.admin-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#eff7fb;border-radius:13px;padding:4px}
.admin-tab{background:transparent;color:#647f91;border-radius:10px;padding:10px 7px;font-weight:600;font-size:12px}
.admin-tab.active{background:white;color:#058fbf;box-shadow:0 2px 10px #3b708522}
.admin-search{margin:12px 0}.admin-list{max-height:none;overflow:visible;border:1px solid #e9f2f7;border-radius:13px}
.admin-record{padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid #edf2f7}
.admin-record:last-child{border-bottom:none}.admin-record-text{min-width:0;flex:1}.admin-record-note{display:flex;align-items:center;gap:7px;margin-top:7px;flex-wrap:wrap}
.admin-record-actions{display:flex;gap:2px;align-items:center}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin:13px 0 25px;font-size:12px;color:#607e93}
.admin-pagination .btn{font-size:12px;min-height:37px;padding:7px 12px}.admin-options{border-top:1px solid #e8f1f6;padding-top:16px}
.admin-options summary{cursor:pointer;color:#51758e;font-weight:600;font-size:13px;margin-bottom:12px}.admin-options h3{font-size:14px;margin-top:20px}.admin-input{flex:1;min-width:135px}
@media(max-width:600px){.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-kpi strong{font-size:17px}.admin-head-row{margin-top:19px}.admin-record{align-items:flex-start}.admin-record-actions{flex-direction:column;align-items:flex-end}.admin-tab{font-size:11px}}

/* v0.1.8: Telegram-backed lightweight photo thumbnails */
.share-panel .photo-tile{isolation:isolate;display:grid;place-items:center}
.share-panel .photo-tile img{position:absolute;inset:0;z-index:1}
.share-panel .photo-status{color:#6b8798;font-size:12px;text-align:center;padding:8px;z-index:0}
.share-panel .photo-retry{position:absolute;z-index:3;left:50%;top:61%;transform:translateX(-50%);background:#fff;border:1px solid #c8e8f4;border-radius:10px;padding:8px 12px;color:#008dbb;font-size:12px;cursor:pointer}
.share-panel .photo-tile img:not([src]){visibility:hidden}
.share-panel .photo-tile:not(.photo-loaded) img{opacity:0}
.share-panel .photo-tile.photo-loaded img{opacity:1}
.share-panel .photo-tile .select-file{z-index:4}
