:root{--blue:#2e88c4;--blue-dark:#166ca7;--green:#24b46b;--text:#292e34;--muted:#677381;--line:#e6ebef;--shadow:0 12px 48px rgba(21,43,65,.12)}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8ec8f4;outline-offset:2px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
.header{height:55px;padding:0 23px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e6ea;position:relative}.brand{display:flex;align-items:center;gap:7px;color:#2398dc;font-size:25px;letter-spacing:-1.4px;font-weight:800;font-style:italic;position:absolute;left:50%;transform:translateX(-50%)}.header-left,.header-right{display:flex;align-items:center;height:100%;gap:8px}.nav-link{background:none;border:0;color:#4b4f54;display:flex;align-items:center;gap:7px;padding:0 12px;height:100%;white-space:nowrap;font-size:14px}.nav-link:hover{color:var(--blue)}.nav-link.active{border-bottom:3px solid var(--blue);padding-top:3px}.key-btn{border:1px solid #dce6ed;border-radius:6px;height:34px;font-size:13px;margin-left:10px}.info-icon{border:1.7px solid #666;border-radius:50%;font-weight:700;width:17px;height:17px;line-height:14px;text-align:center;font-size:12px}
main{min-height:calc(100vh - 119px)}.app-shell{max-width:980px;margin:0 auto;padding:28px 18px 56px}.stage{text-align:center;position:relative}.stage h1{font-size:27px;line-height:1.38;font-weight:400;letter-spacing:-.45px;margin:14px auto 9px;max-width:720px}.subtitle,.intro{font-size:16px;line-height:1.55;color:#555e67;margin:8px 0 25px}.subtitle{margin-bottom:32px}.inline-link{padding:0;color:#168bd2;border:0;background:none}.inline-link:hover{text-decoration:underline}.hero-icon{width:125px;height:108px;margin:2px auto 11px;color:var(--blue)}.hero-icon svg{width:100%;height:100%}.hero-icon.small{width:118px;height:100px;margin-top:0;margin-bottom:9px}.empty-stage h1{font-size:32px;margin-top:15px}.empty-stage .intro{margin-top:9px;margin-bottom:26px}
.dropzone{width:min(100%,600px);border:2px dashed #b9d5e8;border-radius:14px;background:#fbfdff;padding:36px 20px 28px;margin:0 auto;display:flex;align-items:center;flex-direction:column;gap:10px;transition:.18s ease;cursor:pointer}.dropzone:hover,.dropzone.dragging{background:#f1f9ff;border-color:#4d9ccf}.drop-symbol{font-size:35px;width:63px;height:63px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e7f2fa;color:var(--blue);font-weight:400}.dropzone strong{font-weight:650;font-size:18px;margin-top:7px}.dropzone>span{color:#78818a}.dropzone small{margin-top:8px;color:#84919b;font-size:12px}.btn{border:none;border-radius:5px;font-weight:650;font-size:12px;letter-spacing:.5px;min-height:40px;padding:10px 21px;transition:transform .12s,background-color .12s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#1975b5}.btn-success{background:#22b367;color:#fff;font-size:15px;letter-spacing:1.2px;padding:13px 27px;min-height:45px}.btn-success:hover{background:#159755}.btn-outline{background:#fff;border:1px solid #bed0db;color:var(--blue)}.btn-plain{background:#f1f3f6;color:#414a52}.add-links-label{color:#697681;font-size:14px;margin:23px 0}.config-banner{border-radius:8px;border:1px solid #fad3a6;background:#fff8ee;color:#85510c;padding:12px 15px;text-align:center;margin:0 auto 22px;max-width:740px;font-size:13px;line-height:1.5}
.reset-btn{position:absolute;right:0;top:-24px;background:none;border:0;color:#276a9a;font-size:12px}.selected-stage h1{font-size:27px;max-width:650px;margin-top:11px}.preview-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:820px;margin:35px auto 34px;min-height:115px}.thumb{position:relative;width:112px;height:112px;flex:none}.thumb-img{width:100%;height:100%;object-fit:cover;border-radius:2px;background:#edf2f6;display:block;cursor:pointer;border:1px solid #e9ecef}.thumb-remote{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:5px;flex-direction:column;color:#6b8798;background:#edf4f9;border:1px solid #d7e7ef;font-size:10px;word-break:break-word;padding:12px}.thumb-btn{position:absolute;width:24px;height:24px;background:white;border:none;border-radius:50%;color:#323b43;box-shadow:0 1px 7px #0003;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;z-index:2;padding:0}.thumb-remove{left:-6px;top:-7px}.thumb-edit{left:-6px;top:22px;font-size:13px}.thumb .thumb-tooltip{position:absolute;bottom:0;left:0;right:0;font-size:10px;color:#fff;background:#0009;padding:4px 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0;transition:opacity .15s}.thumb:hover .thumb-tooltip{opacity:1}.control-area{max-width:315px;text-align:left;margin:0 auto}.control-area label,.result-container label{font-weight:700;font-size:14px;display:block;margin-bottom:8px}.control-area select,.result-container select{width:100%;height:37px;padding:5px 11px;border:1px solid #e1e1e1;border-radius:3px;background:#f0f0f0;color:#202124;font-size:14px}.control-area .btn-success{display:block;min-width:139px;margin:22px auto 0}.progress-text{font-size:13px;color:#6a7886;text-align:center;min-height:18px}.upload-progress{width:100%;height:7px;background:#e9f0f4;border-radius:9px;overflow:hidden;margin:14px 0}.upload-progress>div{height:100%;width:0;background:#28b26b;transition:width .2s}.error-text{font-size:13px;line-height:1.45;color:#b02432;white-space:pre-line}.selected-stage #upload-error{text-align:center;margin-top:7px}
.success-icon{width:100px;height:100px;margin:0 auto 9px}.success-icon svg{width:100%;height:100%}.complete-stage h1{font-size:27px;margin-top:10px}.complete-stage .subtitle{max-width:710px;margin-left:auto;margin-right:auto;margin-bottom:32px}.complete-preview-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 38px;max-width:810px}.result-thumb{width:112px;height:112px;object-fit:cover;border-radius:2px;border:1px solid #eff0f1;background:#edf2f6}.result-container{max-width:650px;text-align:left;margin:0 auto}.result-header{display:flex;align-items:center;justify-content:space-between}.result-count-label{color:#82909d;font-size:12px}.result-container select{max-width:270px;margin-bottom:11px}.result-container textarea{width:100%;min-height:110px;border:1px solid #e5e6e8;border-radius:3px;background:#f0f0f0;color:#252525;padding:10px;font-size:13px;line-height:1.6;resize:vertical}.result-actions{display:flex;gap:10px;margin-top:12px}.field-hint{font-size:12px;color:#85909b;line-height:1.55}.field-hint strong{color:#56646f}.indiv-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding-top:24px;border-top:1px solid #e8edf0;margin-top:25px}.indiv-head h2{font-size:17px;font-weight:650;margin:0 0 15px}.indiv-head span{font-size:12px;color:#95a1ab}.individual-list{display:flex;flex-direction:column;gap:8px}.individual-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #e5ebef;padding:9px;border-radius:7px}.individual-row img{width:48px;height:48px;object-fit:cover;background:#eee;border-radius:5px}.individual-url{font-size:12px;color:#367da6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.individual-name{font-size:11px;color:#75818d;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-one{border:1px solid #cce0ee;background:#f7fbff;color:var(--blue-dark);border-radius:5px;font-size:12px;font-weight:600;padding:8px 12px}.copy-one:hover{background:#e8f5ff}.individual-tools{display:flex;gap:6px}.individual-tools .delete-one{border:0;color:#bd4b4b;background:transparent;font-size:17px;padding:3px 6px}.individual-tools .delete-one:hover{color:#e12626}
footer{min-height:64px;border-top:1px solid #f1f2f3;color:#98a1aa;padding:15px 24px;display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:10px}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#000b;display:flex;align-items:flex-start;justify-content:center;padding:16vh 20px 20px}.modal{background:#fff;border-radius:6px;width:min(100%,650px);box-shadow:0 22px 60px #0004;padding:28px 30px 30px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-head h2{font-size:20px;font-weight:400;margin:0}.close-btn{border:0;background:none;font-size:28px;font-weight:200;line-height:20px;color:#333;padding:2px}.modal-description{margin:-4px 0 17px;color:#717b83;line-height:1.5;font-size:13px}.modal textarea,.modal input:not([type="checkbox"]){width:100%;background:#f0f0f0;border:1px solid #cdd2d6;border-radius:4px;padding:12px 11px;font-size:13px}.modal textarea:focus,.modal input:focus{border-color:#278ac8;outline:2px solid #b9e4ff}.modal-actions{display:flex;gap:10px;margin-top:21px}.modal-actions .btn{font-size:13px;letter-spacing:0}.full-label{display:block;margin-bottom:7px;font-size:13px;font-weight:600}.lock-line{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:13px;color:#626d76;cursor:pointer}.lock-line input{accent-color:var(--blue)}.edit-modal{width:min(100%,550px)}.edit-image-wrap{height:180px;background:#f1f5f8;display:flex;align-items:center;justify-content:center;border-radius:6px;margin-bottom:19px}.edit-image-wrap img{max-height:100%;max-width:100%;object-fit:contain}.edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.edit-fields label{font-weight:600;font-size:13px;display:flex;gap:6px;flex-direction:column}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#26343e;color:#fff;border-radius:7px;padding:11px 17px;box-shadow:var(--shadow);z-index:40;max-width:90vw;text-align:center;font-size:13px}
@media(max-width:650px){.header{padding:0 11px;height:56px}.brand{position:static;transform:none;font-size:22px;margin-right:auto}.header-left{display:none}.header-right{gap:0}.nav-link{font-size:12px;padding:0 7px}.nav-link.active{padding-top:3px}.key-btn{font-size:0;gap:0;margin-left:3px;padding:0 8px;height:31px}.key-btn svg{width:17px;height:17px}.app-shell{padding:27px 15px 36px}.stage h1,.empty-stage h1{font-size:24px}.subtitle,.intro{font-size:14px}.hero-icon{width:103px;height:90px}.dropzone{padding:29px 12px}.dropzone strong{font-size:16px}.dropzone small{font-size:11px;text-align:center}.reset-btn{top:-13px}.preview-grid{gap:10px;margin:32px auto}.thumb,.result-thumb{width:88px;height:88px}.thumb{height:88px}.selected-stage .hero-icon{width:94px;height:82px}.selected-stage h1{font-size:21px}.control-area{max-width:310px}.complete-stage .subtitle{margin-bottom:24px}.success-icon{height:85px;width:85px}.complete-preview-grid{margin-bottom:28px}.result-container select{max-width:none}.result-actions{flex-wrap:wrap}.result-actions .btn{flex:1}.indiv-head span{display:none}.individual-row{grid-template-columns:42px minmax(0,1fr) auto;gap:8px}.individual-row img{width:42px;height:42px}.individual-tools{flex-direction:column}.individual-tools .delete-one{font-size:14px}.copy-one{padding:7px}.modal-backdrop{padding:10vh 13px 15px}.modal{padding:22px 18px}footer{font-size:10px;padding:14px}}

/* Smooth, accessible interaction polish while preserving the original visual design. */
:root { color-scheme: light; }
html { scroll-behavior: smooth; }
.stage:not([hidden]) { animation: stageIn .34s cubic-bezier(.2,.8,.2,1) both; }
@keyframes stageIn { from {opacity:0;transform:translateY(12px)} to {opacity:1;transform:translateY(0)} }
.modal-backdrop:not([hidden]) { animation: veilIn .2s ease-out both; }
.modal-backdrop:not([hidden]) .modal { animation: modalIn .27s cubic-bezier(.2,.8,.2,1) both; }
@keyframes veilIn {from{opacity:0}to{opacity:1}}
@keyframes modalIn {from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.btn,.nav-link,.thumb,.copy-one,.delete-one,.close-btn,.inline-link,.reset-btn { transition: transform .22s ease, background-color .22s ease, border-color .22s ease, box-shadow .22s ease, opacity .22s ease !important; }
.btn:active,.nav-link:active {transform:scale(.97)}
.btn:focus-visible,.nav-link:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.dropzone:focus-visible {outline:3px solid rgba(45,139,201,.42);outline-offset:3px;}
.preview-grid .thumb,.complete-preview-grid>* {animation: stageIn .3s ease-out both;}
#progress-fill {transition:width .3s ease;}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
