:root{--violet:#7d3cf2;--violet-deep:#5b24c9;--lavender:#b997ff;--violet-50:#f5efff;--violet-100:#e6d9ff;--ink:#1c1530;--ink-3:#33284f;--coral:#ff6b4a;--mint:#00b67a;--mint-wash:#e8f8f2;--slate:#6b6577;--mist:#8e889a;--border:#cfc8d4;--line:#ece8e3;--cloud:#f7f5f2;--amber:#f0aa3c;--amber-text:#c87b00;--amber-wash:#fffaf1;--g-brand:linear-gradient(135deg,#9c6bff 0%,#7d3cf2 55%,#5b24c9 100%);--g-button:linear-gradient(135deg,#7d3cf2 0%,#8f55ff 100%);--sh-soft:0 18px 50px #1c153014,0 3px 10px #0000000a;--sh-card:0 24px 70px #1c15301f;--f-display:"Sora",ui-sans-serif,system-ui,sans-serif;--f-body:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--ease:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}*,:before,:after{box-sizing:border-box}body{font-family:var(--f-body);color:var(--ink);-webkit-font-smoothing:antialiased;background:radial-gradient(900px 420px at 85% -10%,#e6d9ffcc,transparent 60%),radial-gradient(600px 400px at -10% 30%,#ffc9b84d,transparent 60%),var(--cloud);min-height:100vh;margin:0}button{font:inherit;cursor:pointer;color:inherit}:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:8px}h1,h2,h3{font-family:var(--f-display);letter-spacing:-.04em;margin:0;font-weight:600}p{margin:0}.ic{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.ic-sm{width:15px;height:15px}.app-mark{--s:28px;width:var(--s);height:var(--s);border-radius:calc(var(--s) * .27);background:var(--g-brand);place-items:center;display:inline-grid;box-shadow:0 6px 16px #7d3cf24d}.app-mark svg{width:100%;height:auto}.dot{--s:22px;width:var(--s);height:var(--s);border:2px solid var(--border);transition:background-color .3s var(--ease),border-color .3s,transform .4s var(--ease-spring);border-radius:50%;flex:none;display:inline-block;position:relative}.dot.is-waiting{border-style:dashed;border-color:#a580ee}.dot.is-done{background:var(--violet);border:2px solid var(--violet)}.dot.is-done:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:42%;height:24%;margin:auto;position:absolute;inset:0;transform:translateY(-12%)rotate(-45deg)}.req-chip{border-radius:999px;align-items:center;gap:6px;height:26px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.req-chip .ic{width:13px;height:13px}.t-upload{color:#2c5bc8;background:#e8f0ff}.t-approve{background:var(--violet-50);color:var(--violet-deep)}.t-choose{color:#9a5b00;background:#fff4e5}.t-confirm{background:var(--mint-wash);color:#007a55}.g-top{z-index:20;-webkit-backdrop-filter:saturate(1.6)blur(16px);border-bottom:1px solid var(--line);background:#ffffffd1;position:sticky;top:0}.g-top-inner{justify-content:space-between;align-items:center;gap:12px;max-width:640px;margin:0 auto;padding:12px 20px;display:flex}.g-brand{align-items:center;gap:10px;display:flex}.g-logo{background:var(--ink);color:#fff;width:36px;height:36px;font:700 13px/1 var(--f-display);letter-spacing:-.02em;border-radius:11px;place-items:center;display:grid}.g-brand b{font-size:15px;font-weight:600;display:block}.g-brand small{color:var(--mist);font-size:12px;display:block}.secure{color:#007a55;background:var(--mint-wash);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.secure .ic{width:13px;height:13px}main{max-width:640px;margin:0 auto;padding:28px 20px 40px}.hello{animation:rise .7s var(--ease);gap:10px;margin-bottom:22px;display:grid}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.lbl{letter-spacing:.14em;color:var(--mist);font-size:11px;font-weight:700}.hello h1{font-size:clamp(30px,7vw,40px);line-height:1.05}.hello p{color:var(--slate);font-size:16px}.hello p b{color:var(--ink)}.from{border:1px solid var(--line);background:#fff;border-radius:18px;align-items:flex-start;gap:12px;margin-top:6px;padding:14px 16px;display:flex}.from .av{background:var(--ink);color:#fff;width:34px;height:34px;font:600 12px/1 var(--f-body);border-radius:50%;flex:none;place-items:center;display:grid}.from p{color:#4f4859;font-size:14px}.from small{color:var(--mist);margin-top:4px;font-size:12px;display:block}.prog{z-index:10;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-radius:18px;gap:8px;margin:0 -4px 18px;padding:14px 16px;display:grid;position:sticky;top:61px;box-shadow:0 10px 30px -18px #1c153040}.prog-row{justify-content:space-between;font-size:14px;display:flex}.prog-row strong{font-weight:600}.prog-row span{color:var(--violet);font-variant-numeric:tabular-nums;font-weight:600}.bar{background:var(--line);border-radius:9px;height:8px;overflow:hidden}.bar i{height:100%;width:var(--p,0%);border-radius:inherit;background:var(--g-brand);transition:width .8s var(--ease);display:block}.section-lbl{color:var(--slate);justify-content:space-between;align-items:center;margin:26px 4px 12px;font-size:13px;font-weight:700;display:flex}.section-lbl em{color:var(--mist);font-style:normal;font-weight:600}.req{border:1px solid var(--line);box-shadow:var(--sh-soft);transition:border-color .3s,box-shadow .3s,transform .4s var(--ease),opacity .4s;animation:rise .7s var(--ease) both;background:#fff;border-radius:22px;gap:14px;margin-bottom:14px;padding:18px;display:grid;position:relative}.req:nth-child(2){animation-delay:60ms}.req:nth-child(3){animation-delay:.12s}.req:nth-child(4){animation-delay:.18s}.req-head{align-items:flex-start;gap:14px;display:flex}.req-head .dot{margin-top:2px}.req-title{flex:1;gap:6px;min-width:0;display:grid}.req-title h2{letter-spacing:-.03em;font-size:18px;line-height:1.25}.req-title p{color:var(--slate);font-size:14px}.req-title .req-chip{justify-self:start}.req-body{gap:10px;padding-left:36px;display:grid}.req.done{box-shadow:none;background:#fff9}.req.done .req-body{display:none}.req.done h2{color:var(--mist);-webkit-text-decoration:line-through #8e889a99;text-decoration:line-through #8e889a99}.req.done .done-note{display:flex}.done-note{color:#007a55;align-items:center;gap:6px;padding-left:36px;font-size:13px;font-weight:600;display:none}.done-note .ic{width:14px;height:14px}.undo{color:var(--mist);text-underline-offset:2px;background:0 0;border:0;margin-left:auto;font-size:12px;font-weight:600;text-decoration:underline}.req.just-done .dot{animation:pop .5s var(--ease-spring)}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.2)}to{transform:scale(1)}}.btn{height:50px;transition:transform .3s var(--ease),box-shadow .3s,background-color .2s,border-color .2s;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--g-button);color:#fff;box-shadow:0 12px 28px #7d3cf240,inset 0 1px #ffffff38}.btn-primary:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.btn-ghost{border-color:var(--line);color:var(--ink);background:#fff}.btn-ghost:hover{border-color:var(--border)}.btn-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.drop{border:1.5px dashed var(--border);background:var(--cloud);text-align:center;color:var(--slate);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:22px 16px;font-size:14px;transition:border-color .2s,background-color .2s;display:flex;position:relative}.drop:hover,.drop.over{border-color:var(--violet);background:var(--violet-50)}.drop .ic{width:24px;height:24px;color:var(--violet)}.drop b{color:var(--ink)}.drop small{color:var(--mist);font-size:12px}.drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.file{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:500;display:none}.file.show{display:flex}.file span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.file small{color:var(--mist);font-weight:500}.proof{aspect-ratio:16/9;background:var(--g-brand);color:#fff;border-radius:16px;align-items:flex-end;padding:14px;font-size:13px;font-weight:600;display:flex;position:relative;overflow:hidden}.proof:before{content:"";background:#ffffff38;border-radius:10px;position:absolute;inset:16% 10% 30%;box-shadow:inset 0 0 0 1px #ffffff40}.proof:after{content:"";background:#ffffff8c;border-radius:6px;height:10px;position:absolute;top:22%;left:10%;right:40%}textarea{border:1px solid var(--line);width:100%;min-height:84px;font:inherit;resize:vertical;border-radius:14px;padding:12px 14px;font-size:15px;display:none}textarea.show{display:block}textarea:focus{border-color:var(--violet);outline:0;box-shadow:0 0 0 4px #7d3cf21f}.opts{gap:8px;display:grid}.opt{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;font-size:15px;font-weight:500;transition:border-color .2s,box-shadow .2s;display:flex}.opt input{appearance:none;border:2px solid var(--border);border-radius:50%;flex:none;width:20px;height:20px;margin:0;transition:border .2s}.opt input:checked{border:6px solid var(--violet)}.opt:has(input:checked){border-color:var(--violet);box-shadow:0 0 0 3px #7d3cf21a}.opt small{color:var(--mist);margin-left:auto;font-size:12px}.when{background:var(--mint-wash);border-radius:16px;align-items:center;gap:14px;padding:14px 16px;display:flex}.cal{text-align:center;background:#fff;border-radius:12px;flex:none;width:52px;overflow:hidden;box-shadow:0 4px 12px #007a551f}.cal b{background:var(--mint);color:#fff;letter-spacing:.1em;padding:3px 0;font-size:10px;display:block}.cal span{font:600 22px/1.4 var(--f-display);display:block}.when strong{font-size:15px;display:block}.when small{color:#2c6b55;font-size:13px}.alldone{text-align:center;border:1px solid var(--line);box-shadow:var(--sh-card);animation:rise .7s var(--ease);background:#fff;border-radius:26px;margin-bottom:18px;padding:36px 24px;display:none}.alldone.show{display:block}.alldone .big{background:var(--g-brand);border-radius:50%;place-items:center;width:72px;height:72px;margin:0 auto 18px;display:grid;box-shadow:0 18px 36px -10px #7d3cf28c}.alldone .big .ic{color:#fff;stroke-width:2.4px;width:34px;height:34px}.alldone h2{margin-bottom:8px;font-size:28px}.alldone p{color:var(--slate)}.g-foot{text-align:center;max-width:640px;color:var(--mist);justify-items:center;gap:10px;margin:0 auto;padding:8px 20px 40px;font-size:13px;display:grid}.g-foot .pw{border:1px solid var(--line);color:var(--slate);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-weight:500;text-decoration:none;display:inline-flex}.g-foot .pw:hover{color:var(--ink)}.g-foot .pw svg.word{width:auto;height:14px;fill:var(--ink)}.toast{opacity:0;background:var(--ink);color:#fff;box-shadow:var(--sh-card);transition:opacity .3s,transform .4s var(--ease);pointer-events:none;z-index:50;border-radius:14px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:12px 16px;font-size:14px;font-weight:500;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.toast .ic{color:#ffc9b8}.confetti{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.confetti i{border-radius:50%;width:9px;height:9px;animation:1.6s cubic-bezier(.2,.6,.4,1) forwards fall;position:absolute;top:-12px}.confetti i:nth-child(3n){border-radius:2px;width:7px;height:12px}@keyframes fall{to{transform:translate3d(var(--x),105vh,0) rotate(540deg);opacity:.2}}@media (max-width:420px){.req-body,.done-note{padding-left:0}.secure span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
