.loi-app{background:#f3f6fb;color:#15233b;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh}.loi-app *{box-sizing:border-box}.loi-top{display:flex;justify-content:flex-end;padding:14px 18px 0}.loi-lang{background:#fff;border:1px solid #d7dee8;border-radius:999px;color:#15233b;cursor:pointer;font-size:13px;font-weight:600;padding:6px 12px}.loi-center{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 48px);padding:24px 16px 48px}.loi-card{background:#fff;border:1px solid #e6ebf2;border-radius:16px;box-shadow:0 10px 30px #1423460f;padding:28px 28px 22px;width:min(760px,100%)}.loi-card h1,.loi-h5-hero h1,.loi-nav-title,.loi-status h1,.loi-success h1{font-weight:700}.loi-card h1{font-size:22px;margin:0 0 8px}.loi-lead,.loi-muted,.loi-note{color:#56627a;font-size:13px;line-height:1.6;margin:0}.loi-note{background:#f4fbf7;border:1px solid #cfeedd;border-radius:10px;margin-top:16px;padding:12px 14px}.loi-due{color:#9a6b12;font-size:12px;margin-top:8px}.loi-step{border:1px solid #b7ebc9;border-radius:12px;margin-top:14px;padding:16px 16px 14px 18px;position:relative}.loi-step-no{align-items:center;background:#12b76a;border-radius:50%;color:#fff;display:inline-flex;font-size:12px;font-weight:700;height:22px;justify-content:center;left:14px;position:absolute;top:-10px;width:22px}.loi-tabs{border-bottom:1px solid #e6ebf2;display:flex;gap:18px;margin-bottom:14px}.loi-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;color:#56627a;cursor:pointer;font-size:14px;font-weight:600;margin-bottom:-1px;padding:8px 2px 10px}.loi-tabs button.on{border-bottom-color:#2f6bff;color:#1a4fd6}.loi-field{margin-bottom:12px}.loi-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.loi-field input{background:#fff;border:1px solid #d7dee8;border-radius:8px;color:#15233b;font-size:16px;height:44px;padding:0 12px;width:100%}.loi-field input:focus{border-color:#2f6bff;outline:2px solid #d9e4ff}.loi-code-row{display:flex;gap:8px}.loi-code-row input{flex:1}.loi-btn,.loi-btn-ghost,.loi-btn-line{border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;height:44px;padding:0 16px}.loi-btn{background:#2f6bff;border:0;color:#fff}.loi-btn-line:disabled,.loi-btn:disabled{cursor:not-allowed;opacity:.55}.loi-btn-ghost,.loi-btn-line{background:#fff;border:1px solid #d7dee8;color:#15233b}.loi-btn-line{white-space:nowrap}.loi-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.loi-error{color:#dc2626;font-size:13px;line-height:1.5;margin:10px 0 0}.loi-mismatch{background:#fde8e8;border:1px solid #f6c3c3;border-radius:10px;color:#9f1d1d;font-size:13px;line-height:1.55;margin-top:14px;padding:12px 14px}.loi-session-banner{background:#f3f7ff;border:1px solid #c9dbff;border-radius:12px;margin-top:16px;padding:14px}.loi-session-banner p{font-size:14px;margin:0 0 12px}.loi-h5{background:#fff;display:flex;flex-direction:column;min-height:100vh;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.loi-h5-hero{background:linear-gradient(180deg,#4c8dff,#2f6bff);border-radius:0 0 28px 28px;color:#fff;padding:calc(28px + env(safe-area-inset-top)) 22px 26px;text-align:center}.loi-h5-mark{align-items:center;background:#ffffff2e;border-radius:50%;display:flex;font-size:22px;font-weight:800;height:54px;justify-content:center;margin:0 auto 10px;width:54px}.loi-h5-hero h1{font-size:20px;margin:0 0 6px}.loi-h5-hero p{font-size:12px;margin:0;opacity:.9}.loi-h5-body{flex:1;padding:16px 16px 24px}.loi-h5 .loi-btn,.loi-h5-bar .loi-btn{border-radius:999px;font-size:16px;height:48px;width:100%}.loi-h5-foot{color:#8b97ab;font-size:12px;margin:10px 0 0;text-align:center}.loi-nav{align-items:center;background:#fff;border-bottom:1px solid #eef2f7;display:grid;grid-template-columns:44px 1fr auto;height:calc(52px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);position:sticky;top:0;z-index:2}.loi-nav button{background:transparent;border:0;color:#15233b;cursor:pointer;font-size:26px;line-height:1}.loi-nav button.loi-nav-action{color:#1a4fd6;font-size:13px;font-weight:600;padding-right:12px}.loi-nav-title{font-size:16px;text-align:center}.loi-identity{align-items:center;background:#f3faf6;border-radius:12px;display:flex;gap:12px;justify-content:space-between;margin:12px 16px 0;padding:12px 14px}.loi-identity strong{display:block;font-size:14px;font-weight:700}.loi-identity span,.loi-tag{color:#128a52;font-size:12px;font-weight:700}.loi-tag{background:#e5f8ee;border-radius:999px;padding:4px 8px;white-space:nowrap}.loi-facts{background:#fff;margin:8px 16px 0}.loi-fact{border-bottom:1px solid #f0f3f8;padding:12px 0}.loi-fact b{color:#8b97ab;display:block;font-size:12px;font-weight:600;margin-bottom:4px}.loi-fact span{font-size:15px;font-weight:600}.loi-doc{background:#f7f9fc;border-radius:12px;margin:12px 16px 0;overflow:hidden}.loi-doc-head{align-items:center;display:flex;font-size:14px;font-weight:700;gap:8px;justify-content:space-between;padding:12px 14px 0}.loi-frame{background:#fff;border:0;height:480px;width:100%}.loi-pager-bar{align-items:center;display:flex;font-size:13px;gap:8px;justify-content:space-between;padding:8px 14px 0}.loi-pager-bar button{background:#fff;border:1px solid #d7dfeb;border-radius:8px;cursor:pointer;font-size:13px;padding:6px 10px}.loi-pager-bar button:disabled{cursor:default;opacity:.45}.loi-booking{text-align:left}.loi-h5 .loi-frame{height:220px}.loi-doc-links{display:flex;font-size:12px;gap:8px;justify-content:space-between;padding:8px 14px 12px}.loi-doc-links a{color:#1a4fd6}.loi-h5-bar{background:#fff;bottom:0;box-shadow:0 -8px 24px #1423460f;left:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:3}.loi-sign-page{margin:0 auto;padding-bottom:32px;width:min(1120px,calc(100% - 32px))}.loi-sign-head{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:8px 0 14px}.loi-crumb{color:#8b97ab;font-size:13px}.loi-crumb b{color:#15233b;font-weight:700}.loi-user{background:#fff;border:1px solid #e6ebf2;border-radius:999px;font-size:13px;font-weight:600;padding:6px 12px}.loi-banner{background:#eefbf4;border:1px solid #cfeedd;border-radius:10px;color:#146c43;font-size:13px;margin-bottom:14px;padding:10px 14px}.loi-sign-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr)}.loi-panel{background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:16px}.loi-panel h2{font-size:16px;font-weight:700;margin:0 0 12px}.loi-pad-wrap{background:#fff;border:1px dashed #c5d0e0;border-radius:12px;height:190px;overflow:hidden;position:relative;touch-action:none}.loi-pad-wrap.is-h5{height:220px}.loi-pad-wrap canvas{cursor:crosshair;display:block;height:100%;touch-action:none;width:100%}.loi-pad-hint{color:#9aa6bc;font-size:13px;inset:0;justify-content:center;padding:16px;pointer-events:none;position:absolute;text-align:center}.loi-pad-hint,.loi-pad-meta{align-items:center;display:flex}.loi-pad-meta{color:#8b97ab;font-size:12px;gap:8px;justify-content:space-between;margin-top:8px}.loi-linkish{background:transparent;border:0;color:#1a4fd6;cursor:pointer;font-size:13px;font-weight:600;padding:0}.loi-check{align-items:flex-start;display:flex;font-size:13px;gap:8px;line-height:1.5;margin-top:14px}.loi-check input{margin-top:3px}.loi-success{margin:0 auto;padding:28px 20px 40px;text-align:center;width:min(440px,100%)}.loi-success-mark{align-items:center;background:#e8f8ef;border-radius:50%;color:#12b76a;display:flex;height:72px;justify-content:center;margin:12px auto 14px;width:72px}.loi-success h1{font-size:22px;margin:0 0 6px}.loi-file-card{background:#f7f9fc;border-radius:12px;margin-top:18px;padding:14px;text-align:left}.loi-file-card strong{display:block;font-weight:700;margin-bottom:4px}.loi-file-actions{display:flex;gap:8px;margin-top:12px}.loi-file-actions .loi-btn,.loi-file-actions .loi-btn-ghost{flex:1}.loi-status{background:#fff;border:1px solid #e6ebf2;border-radius:16px;padding:28px 22px;text-align:center;width:min(520px,100%)}.loi-status h1{font-size:20px;margin:12px 0 8px}.loi-status p{color:#56627a;font-size:14px;line-height:1.6;margin:0}.loi-spinner{animation:loi-spin .8s linear infinite;border:3px solid #d9e4ff;border-radius:50%;border-top-color:#2f6bff;height:28px;margin:0 auto;width:28px}@keyframes loi-spin{to{transform:rotate(1turn)}}@media(max-width:900px){.loi-sign-grid{grid-template-columns:1fr}.loi-card{padding:22px 16px 16px}}
