*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}body{overflow-x:hidden}img,canvas,svg,video{max-width:100%;height:auto}:root{--page-bg: #f2f2f7;--card-bg: #ffffff;--topbar-bg: rgba(255, 255, 255, .92);--topbar-border: #d1d1d6;--text-primary: #1c1c1e;--text-secondary: #3a3a3c;--text-muted: #8e8e93;--text-link: #007aff;--text-accent: #e85d04;--separator: #e5e5ea;--icon-chip-bg: #e5e5ea;--icon-chip-color: #8e8e93;--action-bg: #2c7a7b;--action-color: #ffffff;--state-loading-bg: #f2f2f7;--state-signing-bg: #fff3cd;--state-signing-color: #d97706;--state-success-bg: #d1fae5;--state-success-color: #059669;--state-error-bg: #fee2e2;--state-error-color: #dc2626;--spinner-track: #e5e5ea;--spinner-fill: #007aff;--pulse-ring-color: #f59e0b;--tech-bg: #f9fafb;--tech-text: #374151;--secondary-btn-bg: #f2f2f7;--secondary-btn-color: #3a3a3c;--code-bg: #f2f2f7}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--page-bg: #0d1117;--card-bg: #161b22;--topbar-bg: rgba(13, 17, 23, .92);--topbar-border: #30363d;--text-primary: #e6edf3;--text-secondary: #c9d1d9;--text-muted: #8b949e;--text-link: #58a6ff;--text-accent: #f0883e;--separator: #30363d;--icon-chip-bg: #21262d;--icon-chip-color: #8b949e;--action-bg: #2d8a8b;--action-color: #ffffff;--state-loading-bg: #21262d;--state-signing-bg: rgba(187, 128, 9, .15);--state-signing-color: #e3b341;--state-success-bg: rgba(35, 134, 54, .15);--state-success-color: #3fb950;--state-error-bg: rgba(248, 81, 73, .15);--state-error-color: #f85149;--spinner-track: #30363d;--spinner-fill: #58a6ff;--pulse-ring-color: #e3b341;--tech-bg: #161b22;--tech-text: #c9d1d9;--secondary-btn-bg: #21262d;--secondary-btn-color: #c9d1d9;--code-bg: #161b22}}[data-theme=dark]{--page-bg: #0d1117;--card-bg: #161b22;--topbar-bg: rgba(13, 17, 23, .92);--topbar-border: #30363d;--text-primary: #e6edf3;--text-secondary: #c9d1d9;--text-muted: #8b949e;--text-link: #58a6ff;--text-accent: #f0883e;--separator: #30363d;--icon-chip-bg: #21262d;--icon-chip-color: #8b949e;--action-bg: #2d8a8b;--action-color: #ffffff;--state-loading-bg: #21262d;--state-signing-bg: rgba(187, 128, 9, .15);--state-signing-color: #e3b341;--state-success-bg: rgba(35, 134, 54, .15);--state-success-color: #3fb950;--state-error-bg: rgba(248, 81, 73, .15);--state-error-color: #f85149;--spinner-track: #30363d;--spinner-fill: #58a6ff;--pulse-ring-color: #e3b341;--tech-bg: #161b22;--tech-text: #c9d1d9;--secondary-btn-bg: #21262d;--secondary-btn-color: #c9d1d9;--code-bg: #161b22}[data-theme=light]{--page-bg: #f2f2f7;--card-bg: #ffffff;--topbar-bg: rgba(255, 255, 255, .92);--topbar-border: #d1d1d6;--text-primary: #1c1c1e;--text-secondary: #3a3a3c;--text-muted: #8e8e93;--text-link: #007aff;--text-accent: #e85d04;--separator: #e5e5ea;--icon-chip-bg: #e5e5ea;--icon-chip-color: #8e8e93;--action-bg: #2c7a7b;--action-color: #ffffff;--state-loading-bg: #f2f2f7;--state-signing-bg: #fff3cd;--state-signing-color: #d97706;--state-success-bg: #d1fae5;--state-success-color: #059669;--state-error-bg: #fee2e2;--state-error-color: #dc2626;--spinner-track: #e5e5ea;--spinner-fill: #007aff;--pulse-ring-color: #f59e0b;--tech-bg: #f9fafb;--tech-text: #374151;--secondary-btn-bg: #f2f2f7;--secondary-btn-color: #3a3a3c;--code-bg: #f2f2f7}*{box-sizing:border-box}.sign-page{min-height:100dvh;background:var(--page-bg);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text-primary)}.sign-topbar{position:sticky;top:0;z-index:10;background:var(--topbar-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--topbar-border);display:flex;align-items:center;justify-content:space-between;padding:0 1rem;height:3rem;flex-shrink:0}.topbar-cancel{background:none;border:none;padding:.25rem 0;font-size:1rem;font-weight:400;color:var(--text-link);cursor:pointer;min-width:4rem;text-align:left}.topbar-cancel:hover{opacity:.7}.topbar-cancel:active{opacity:.5}.topbar-title{font-size:1rem;font-weight:600;color:var(--text-primary);position:absolute;left:50%;transform:translate(-50%)}.topbar-right{display:flex;align-items:center;gap:.4rem;min-width:4rem;justify-content:flex-end}.theme-toggle{background:none;border:none;padding:0;width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.theme-toggle:hover{background:var(--icon-chip-bg);color:var(--text-primary)}.theme-toggle svg{width:1rem;height:1rem}.topbar-user-icon{width:1.75rem;height:1.75rem;border-radius:50%;background:var(--icon-chip-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.topbar-user-icon img{width:100%;height:100%;object-fit:cover}.topbar-user-icon svg{width:1rem;height:1rem;color:var(--icon-chip-color)}.sign-body{flex:1 1 0;min-height:0;overflow-y:auto;padding:1rem 1rem .5rem;display:flex;flex-direction:column;gap:.75rem}.sign-section{background:var(--card-bg);border-radius:.75rem;overflow:hidden}.sign-row{display:flex;align-items:baseline;justify-content:space-between;padding:.875rem 1rem;gap:1rem}.sign-row+.sign-row{border-top:1px solid var(--separator)}.sign-row-label{font-size:.9375rem;color:var(--text-secondary);font-weight:400;flex-shrink:0}.sign-row-value{font-size:.9375rem;font-weight:600;color:var(--text-primary);text-align:right}.sign-row-value.accent{color:var(--text-accent)}.sign-message-section{background:var(--card-bg);border-radius:.75rem;overflow:hidden;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.sign-message-header{padding:.875rem 1rem .5rem;font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.sign-message-body{padding:0 1rem 1rem;font-size:.9375rem;line-height:1.6;color:var(--text-secondary);flex:1 1 0;overflow-y:auto}.sign-message-body p{margin:0 0 .5rem}.sign-message-body p:last-child{margin-bottom:0}.sign-message-body h1,.sign-message-body h2,.sign-message-body h3{color:var(--text-primary);margin:0 0 .5rem;font-size:1rem}.sign-message-body ul,.sign-message-body ol{margin:.5rem 0;padding-left:1.5rem}.sign-message-body li{margin:.25rem 0}.sign-message-body code{background:var(--code-bg);padding:.1em .35em;border-radius:.25rem;font-size:.875em}.location-notice{display:flex;align-items:center;gap:.5rem;background:var(--card-bg);border-radius:.75rem;padding:.75rem 1rem;font-size:.8125rem;font-weight:500;color:var(--text-link)}.location-notice svg{width:1rem;height:1rem;flex-shrink:0}.sign-footer{padding:.75rem 1rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));background:var(--page-bg);flex-shrink:0}.sign-action-btn{width:100%;padding:.9rem 1.5rem;background:var(--action-bg);color:var(--action-color);border:none;border-radius:.75rem;font-size:1.0625rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:opacity .15s,transform .1s}.sign-action-btn:hover{opacity:.88}.sign-action-btn:active{transform:scale(.98);opacity:.75}.sign-action-btn:disabled{opacity:.45;cursor:not-allowed}.sign-action-btn svg{width:1.125rem;height:1.125rem}.sign-status-card{background:var(--card-bg);border-radius:1rem;padding:2rem 1.5rem;text-align:center;animation:fadeSlideUp .25s ease-out;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;flex:1 1 0}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.status-icon{width:3.5rem;height:3.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.status-icon svg{width:1.75rem;height:1.75rem}.status-icon.loading{background:var(--state-loading-bg)}.status-icon.signing{background:var(--state-signing-bg);color:var(--state-signing-color)}.status-icon.success{background:var(--state-success-bg);color:var(--state-success-color)}.status-icon.error{background:var(--state-error-bg);color:var(--state-error-color)}.status-title{font-size:1.1875rem;font-weight:600;color:var(--text-primary);margin:0}.status-subtitle{font-size:.9375rem;color:var(--text-muted);margin:0;line-height:1.5}.status-error-msg{font-size:.9375rem;color:var(--state-error-color);margin:0;font-weight:500}.status-note{font-size:.8125rem;color:var(--text-muted);font-style:italic;margin:0}.spinner{width:1.75rem;height:1.75rem;border:2.5px solid var(--spinner-track);border-top-color:var(--spinner-fill);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pulse-ring{position:absolute;inset:-6px;border:2px solid var(--pulse-ring-color);border-radius:50%;animation:pulse 1.8s ease-in-out infinite;opacity:.6;pointer-events:none}@keyframes pulse{0%,to{transform:scale(.85);opacity:.7}50%{transform:scale(1.1);opacity:.25}}.status-icon.signing{position:relative}.tech-details{width:100%;background:var(--tech-bg);border-radius:.5rem;padding:.75rem;text-align:left}.tech-details summary{cursor:pointer;color:var(--text-muted);font-size:.8125rem;-webkit-user-select:none;user-select:none}.tech-details pre{margin:.5rem 0 0;font-size:.75rem;color:var(--tech-text);white-space:pre-wrap;word-break:break-all}.status-actions{width:100%;display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.status-btn{width:100%;padding:.8rem 1rem;border:none;border-radius:.75rem;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .15s}.status-btn.primary{background:var(--action-bg);color:var(--action-color)}.status-btn.secondary{background:var(--secondary-btn-bg);color:var(--secondary-btn-color)}.status-btn:hover{opacity:.8}
