*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.shell{width:100%;max-width:520px;margin:0 auto;padding:24px 16px 40px;flex:1}.stack{display:flex;flex-direction:column;gap:20px}.stack-sm{display:flex;flex-direction:column;gap:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}h1{font-size:1.4rem;margin:0;font-weight:650}h2{font-size:1.05rem;margin:0;font-weight:600}p{margin:0}.sender{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--primary);font-weight:650;font-size:1.3rem;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:contain}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:10px;padding:14px 18px;font-size:1rem;font-weight:600;cursor:pointer;width:100%;min-height:48px;font-family:inherit}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-danger{background:var(--danger);color:var(--danger-text)}.btn:disabled{opacity:.5;cursor:default}.linkbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--muted);text-decoration:underline;cursor:pointer;font-size:.9rem;padding:6px;font-family:inherit}.linkbtn-danger{color:var(--danger)}.note{border-left:3px solid var(--primary);background:var(--accent-soft);padding:12px 14px;border-radius:0 10px 10px 0;font-style:italic}.trust{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}.trust span{display:inline-flex;align-items:center;gap:6px}.signing-as{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px dashed var(--border);border-radius:10px}.poweredby{text-align:center;color:var(--muted);font-size:.78rem;padding:20px 0 8px}.progressbar{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--border);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.progressbar .btn{width:auto;padding:10px 14px;min-height:40px}.pagewrap{position:relative;margin:0 auto 16px;box-shadow:0 1px 6px #0000001f;background:var(--surface);max-width:100%}.pagewrap canvas{display:block;width:100%;height:auto}.field{position:absolute;border:1.5px dashed var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent);border-radius:4px;display:grid;place-items:center;cursor:pointer;overflow:hidden;font-size:.7rem;color:var(--primary);text-align:center;padding:2px}.field-filled{border-style:solid;background:transparent;cursor:default}.field img{width:100%;height:100%;object-fit:contain}.field-target{outline:3px solid var(--primary);outline-offset:2px}.field input[type=text]{width:100%;height:100%;border:none;background:transparent;text-align:center;font-family:inherit}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:50}.sheet{background:var(--surface);width:100%;max-width:520px;border-radius:16px 16px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}@media (min-width: 560px){.overlay{align-items:center}.sheet{border-radius:16px}}.tabs{display:flex;gap:8px}.tab{flex:1;padding:10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-family:inherit;font-size:.95rem}.tab-active{border-color:var(--primary);background:var(--accent-soft);color:var(--primary);font-weight:600}.sigpad{border:1px solid var(--border);border-radius:10px;background:var(--surface);touch-action:none;width:100%;height:180px;display:block}.typed-preview{border:1px solid var(--border);border-radius:10px;height:100px;display:grid;place-items:center;font-size:2rem}.font-cursive{font-family:Segoe Script,Brush Script MT,cursive}.font-serif{font-family:Georgia,Times New Roman,serif}.spinner{display:grid;place-items:center;padding:60px 0;color:var(--muted)}.textinput{width:100%;border:1px solid var(--border);border-radius:10px;padding:12px;font-size:1rem;font-family:inherit;color:var(--text);background:var(--surface)}
