:root{--bg-gradient-start:#f4f6f8;--bg-gradient-end:#e5e9f0;--surface:rgba(255,255,255,0.7);--surface-strong:rgba(255,255,255,0.9);--text:#1d1d1f;--muted:#86868b;--line:rgba(0,0,0,0.08);--accent:#34c759;--accent-hover:#2db34f;--accent-soft:rgba(52,199,89,0.15);--danger:#ff3b30;--shadow:0 8px 32px rgba(0,0,0,0.04);--shadow-hover:0 16px 48px rgba(0,0,0,0.08);--blur:blur(24px)}*{box-sizing:border-box}html{min-height:100%}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden;background:var(--bg-gradient-start);position:relative}body:after,body:before{content:"";position:fixed;border-radius:50%;filter:blur(80px);z-index:-1;animation:floatBackground 20s ease-in-out infinite alternate}body:before{top:-10vw;left:-10vw;width:50vw;height:50vw;background:radial-gradient(circle,rgba(52,199,89,.12),transparent 70%)}body:after{bottom:-15vw;right:-10vw;width:60vw;height:60vw;background:radial-gradient(circle,rgba(0,122,255,.08),transparent 70%);animation-delay:-10s}@keyframes floatBackground{0%{transform:translateY(0) scale(1)}to{transform:translateY(5vh) scale(1.1)}}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.page-shell{min-height:100vh;padding:40px 24px calc(80px + env(safe-area-inset-bottom, 0px))}.page-inner{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.hero{padding:40px;border-radius:32px;background:var(--surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8);position:relative;overflow:hidden}.eyebrow{margin:0 0 12px;color:var(--accent);font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero h1{margin:0;font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1;letter-spacing:-.02em;background:linear-gradient(135deg,#1d1d1f 30%,#434343);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero p{max-width:580px;margin:16px 0 0;color:var(--muted);font-size:1.1rem;line-height:1.6}.hero-signature{margin-top:32px}.sign-name{font-size:1.8rem;font-weight:600;color:#1d1d1f;position:relative;display:inline-block;letter-spacing:.02em}.sign-name:after{content:"|";color:var(--accent);font-weight:300;margin-left:2px;animation:cursorBlink .9s steps(1) infinite}.sign-name.typed:after{animation:cursorBlink .9s steps(1) 3;animation-fill-mode:forwards;opacity:0}.sign-name .sign-underline{position:absolute;bottom:2px;left:0;width:0;height:3px;border-radius:2px;background:var(--accent)}.sign-name.typed .sign-underline{animation:underlineGrow 1s cubic-bezier(.16,1,.3,1) forwards}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 12px}.toolbar .hint{font-size:1.05rem;font-weight:500;margin:0}.toolbar .button{background:var(--surface-strong);color:var(--text);box-shadow:0 2px 12px rgba(0,0,0,.04);border:1px solid var(--line);padding:10px 20px;min-height:44px;font-size:.95rem;border-radius:14px}.toolbar .button:hover:not(:disabled){background:#fff;transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.06)}.status-grid{display:grid;grid-gap:24px;gap:24px;grid-template-columns:repeat(2,1fr)}.card{padding:32px;border-radius:32px;background:var(--surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}.card h2{margin:0 0 8px;font-size:1.5rem;font-weight:700;letter-spacing:-.01em}.meta{margin:0;color:var(--muted);line-height:1.5}.badge,.meta{font-size:.95rem}.badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:100px;margin-top:20px;background:var(--accent-soft);color:#248a3d;font-weight:600}.badge.pending{background:rgba(0,0,0,.05);color:var(--muted);position:relative}.badge.pending:before{content:"";display:inline-block;width:8px;height:8px;background-color:#ff9f0a;border-radius:50%;margin-right:8px;animation:pulseDot 2s ease-in-out infinite}@keyframes pulseDot{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1.1);opacity:1}to{transform:scale(.9);opacity:.7}}.photo-preview{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;margin-top:24px;border-radius:20px;background:rgba(0,0,0,.03);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.actions{display:grid;grid-gap:24px;gap:24px;grid-template-columns:repeat(2,1fr)}.upload-form{display:flex;flex-direction:column;gap:16px;margin-top:20px}.field-label{font-weight:600;font-size:14px;color:var(--text)}.file-input{width:100%;padding:12px;border:2px dashed rgba(0,0,0,.1);border-radius:16px;background:rgba(0,0,0,.01);transition:border-color .2s,background .2s;cursor:pointer;color:var(--muted)}.file-input:focus,.file-input:hover{border-color:var(--accent);background:var(--accent-soft);outline:none}.file-input::-webkit-file-upload-button{border:none;background:var(--surface-strong);padding:8px 16px;border-radius:8px;color:var(--text);font-weight:600;margin-right:12px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.04);-webkit-transition:background .2s;transition:background .2s}.file-input::file-selector-button{border:none;background:var(--surface-strong);padding:8px 16px;border-radius:8px;color:var(--text);font-weight:600;margin-right:12px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:background .2s}.file-input::-webkit-file-upload-button:hover{background:#fff}.file-input::file-selector-button:hover{background:#fff}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:16px;min-height:54px;padding:16px 24px;font-weight:600;font-size:1rem;cursor:pointer;color:white;background:var(--accent);transition:all .2s cubic-bezier(.16,1,.3,1);overflow:hidden;position:relative}.button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-soft)}.button:active:not(:disabled){transform:translateY(0) scale(.98)}.button:disabled{cursor:not-allowed;transform:none;background:#d1d1d6;color:#fff;box-shadow:none;opacity:.8}.error,.success{margin:12px 0 0;font-size:.95rem;font-weight:500;padding:12px 16px;border-radius:12px}.error{color:var(--danger);background:rgba(255,59,48,.08)}.success{color:#248a3d;background:var(--accent-soft)}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes underlineGrow{0%{width:0}to{width:100%}}@media (max-width:820px){.actions,.status-grid{grid-template-columns:1fr;gap:16px}.page-shell{padding:24px 16px calc(40px + env(safe-area-inset-bottom, 0px))}.page-inner{gap:16px}.card,.hero{padding:24px;border-radius:28px}.toolbar{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0;gap:12px}.toolbar .hint{text-align:center}}@media (max-width:560px){.page-shell{padding:16px 12px calc(32px + env(safe-area-inset-bottom, 0px))}.card,.hero{padding:20px;border-radius:24px}.eyebrow{font-size:12px;margin-bottom:8px}.hero h1{font-size:clamp(2rem,12vw,2.8rem)}.hero p{font-size:1rem;margin-top:12px}.sign-name{font-size:1.5rem}.card h2{font-size:1.3rem}.photo-preview{border-radius:16px;margin-top:20px}.button{min-height:50px;font-size:1rem;border-radius:14px}.file-input{padding:12px;border-radius:12px}}