:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#1f2a44;background:#f7f8fc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:100vh;background:#f7f8fc}button,input{font:inherit}input{border:0;outline:none;background:transparent}button{border:0;cursor:pointer}.page-shell{min-height:100vh;padding:max(36px,env(safe-area-inset-top)) 24px max(32px,env(safe-area-inset-bottom));display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(180deg,#ffffff 0%,#f8f9fe 52%,#f5f7fd 100%)}.page-shell-home{padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));background:#ffffff}.page-shell-detail{align-items:stretch}.login-card{width:min(100%,375px);padding-top:28px}.brand-block{display:flex;flex-direction:column;align-items:center}.brand-logo{width:96px;height:96px;border-radius:28px;box-shadow:0 12px 28px #587aff24}.brand-title{margin:20px 0 0;font-size:22px;line-height:30px;font-weight:700;color:#2c3156}.brand-subtitle{margin:8px 0 0;font-size:14px;line-height:20px;color:#9aa0b5}.login-form{margin-top:56px}.field-group{display:block}.field-group+.field-group{margin-top:24px}.field-label{display:block;margin-bottom:12px;font-size:16px;line-height:22px;font-weight:600;color:#323960}.field-box{height:56px;padding:0 18px;display:flex;align-items:center;gap:12px;border-radius:12px;background:#f2f3fb;transition:background-color .2s ease,box-shadow .2s ease}.field-box-filled{background:#eef0fb;box-shadow:inset 0 0 0 1px #5362a80a}.field-icon{width:24px;height:24px;flex:0 0 auto}.field-input{width:100%;font-size:16px;line-height:24px;color:#2c3156;font-weight:400}.field-input-filled{color:#59617f;font-weight:600}.field-input::placeholder{color:#adb3c8}.feedback{margin:14px 0 0;font-size:14px;line-height:20px}.feedback-error{color:#e25555}.feedback-success{color:#4d74f7}.submit-button{width:100%;height:52px;margin-top:46px;border-radius:12px;background:linear-gradient(90deg,#8ea2ff 0%,#6f87f3 100%);color:#fff;font-size:18px;font-weight:600;transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease;box-shadow:0 10px 22px #6f87f33d}.submit-button-ready{background:linear-gradient(90deg,#3758ef 0%,#2f4ee8 100%);box-shadow:0 12px 24px #2f4ee838}.submit-button:disabled{opacity:.68;box-shadow:none}.submit-button:not(:disabled):active{transform:translateY(1px)}.page-footer{margin-top:72px;padding-top:28px;border-top:1px solid #eceef5;font-size:14px;line-height:22px;text-align:center;color:#b0b5c7}.home-screen{width:min(100%,375px);color:#29335d}.home-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.home-title{font-size:16px;line-height:24px;font-weight:700;color:#2a3159}.home-actions{display:flex;align-items:center;gap:10px}.change-password-button{padding:0;background:transparent;line-height:0}.change-password-image{width:111px;height:29px;display:block}.merchant-account{font-size:14px;line-height:20px;color:#afb2c0}.logout-button{padding:0;background:transparent;color:#ff7e8f;font-size:14px;line-height:20px;font-weight:600}.home-panel{margin-top:14px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title-group{display:flex;align-items:center;gap:6px;min-width:0}.section-icon{width:20px;height:20px;flex:0 0 auto}.section-title{font-size:14px;line-height:20px;font-weight:700;color:#40509a}.recommend-tag{width:70px;height:32px;object-fit:contain}.section-hint{font-size:12px;line-height:18px;color:#b3b7c9}.scan-card{width:100%;margin-top:10px;padding:34px 20px 28px;border:1px dashed #b8bfd4;border-radius:10px;background:#f4f5fa;display:flex;flex-direction:column;align-items:center}.scan-camera{width:80px;height:80px}.scan-card-title{margin-top:8px;font-size:18px;line-height:26px;font-weight:700;color:#2f3560}.scan-card-desc{margin-top:8px;font-size:12px;line-height:18px;color:#c1c5d3}.manual-entry{margin-top:10px;display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:8px}.manual-input{height:40px;padding:0 16px;border-radius:8px;background:#f1f2f7;font-size:14px;line-height:20px;color:#58617d;font-weight:600}.manual-input::placeholder{color:#b5b7c5;font-weight:500}.manual-submit{height:40px;border-radius:8px;background:#7a91ff;color:#fff;font-size:14px;line-height:20px;font-weight:700}.manual-submit-ready{background:#3153ea}.home-panel-records{padding-bottom:10px}.section-title-row-records{align-items:flex-end}.date-range{display:flex;align-items:center;gap:4px;font-size:12px;line-height:18px;color:#7e89ba}.date-chip{padding:1px 6px;border:1px solid #b7c2ff;border-radius:4px;background:#f9fbff}.date-chip-button{color:#6e7bb5}.date-separator{color:#7c86a8}.record-table{margin-top:10px;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 20px #253b910f}.record-header,.record-row{display:grid;grid-template-columns:1.18fr 1.08fr .9fr 28px;align-items:center;gap:8px;padding:14px 16px}.record-header{background:#eef0f8;font-size:14px;line-height:20px;font-weight:700;color:#404875}.record-row{min-height:66px;border-top:1px solid #eff1f7}.record-row-button{width:100%;text-align:left}.record-time{display:flex;flex-direction:column;gap:3px}.record-date{font-size:14px;line-height:20px;font-weight:700;color:#4a557f}.record-clock{font-size:13px;line-height:18px;color:#979eb5}.record-name,.record-method{font-size:14px;line-height:20px;font-weight:700;color:#4a557f}.record-action{width:28px;height:28px;padding:0;background:transparent}.record-arrow{width:24px;height:24px;display:block;margin:0 auto}.verify-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 74px);transform:translate(-50%);min-width:146px;padding:12px 20px;border-radius:999px;background:rgba(49,53,64,.82);color:#fff;text-align:center;font-size:16px;line-height:22px}.build-badge{position:fixed;left:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:60;padding:6px 10px;border-radius:999px;background:rgba(18,22,32,.58);color:#ffffffeb;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.2px;border:0;user-select:none}.debug-panel{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 48px);z-index:59;padding:12px;border-radius:12px;background:rgba(11,14,22,.9);color:#fff;box-shadow:0 12px 30px #0003}.debug-panel-title{margin-bottom:8px;font-size:13px;line-height:18px;font-weight:700}.debug-panel-line{font-size:12px;line-height:18px;word-break:break-all}.date-picker-overlay{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:0 16px 18px;background:rgba(26,31,46,.44)}.scan-overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:stretch;justify-content:center;background:rgba(10,15,26,.94)}.scan-sheet{width:min(100%,430px);min-height:100vh;padding:max(18px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));color:#fff}.scan-header{height:44px;display:flex;align-items:center;justify-content:space-between}.scan-close,.scan-manual{padding:0;background:transparent;color:#cfd6f7;font-size:15px;line-height:22px}.scan-title{font-size:17px;line-height:24px;font-weight:700}.scan-body{padding-top:26px}.scan-region-frame{position:relative;width:100%;min-height:360px;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(34,49,88,.88) 0%,rgba(12,20,37,.96) 100%);box-shadow:0 16px 40px #00000047}.scan-region{width:100%;min-height:360px}.scan-region video{width:100%;height:360px;object-fit:cover}.scan-region button,.scan-region select,.scan-region img{display:none!important}.scan-region>div{min-height:360px}.scan-region video{border-radius:24px}.scan-region-frame:before{content:"";position:absolute;left:50%;top:50%;width:220px;height:220px;transform:translate(-50%,-50%);border:2px solid rgba(94,134,255,.92);border-radius:24px;box-shadow:0 0 0 999px #00000038;pointer-events:none}.scan-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(8,14,24,.75);color:#fff;font-size:16px;line-height:22px}.scan-hint{margin:18px 0 0;font-size:15px;line-height:22px;text-align:center;color:#d3daf8}.scan-error{margin:10px 0 0;font-size:13px;line-height:20px;text-align:center;color:#ffb480}.date-picker-sheet{position:relative;width:min(100%,343px);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 10px 30px #1724562e;touch-action:none}.date-picker-header{height:46px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f2f7}.date-picker-text-button{padding:0;background:transparent;font-size:16px;line-height:22px;color:#a7aebf}.date-picker-confirm{color:#5375ff;font-weight:700}.date-picker-columns{position:relative;display:grid;grid-template-columns:repeat(3,1fr);padding:10px 22px 18px}.date-picker-column{height:220px;padding:88px 0;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none}.date-picker-column::-webkit-scrollbar{display:none}.date-picker-item{width:100%;height:44px;padding:0;background:transparent;font-size:18px;line-height:26px;color:#b3b7c6;text-align:center;scroll-snap-align:center}.date-picker-item-active{color:#5e6998;font-weight:700}.date-picker-highlight{position:absolute;left:22px;right:22px;top:98px;height:44px;border-top:1px solid #f0f2f7;border-bottom:1px solid #f0f2f7;background:rgba(245,247,253,.55);pointer-events:none}.detail-screen,.password-screen{width:min(100%,375px);color:#515a84}.detail-header{position:sticky;top:0;z-index:2;height:44px;display:flex;align-items:center;background:#fff}.detail-back{width:32px;height:32px;margin-left:-4px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent}.detail-back-icon{width:20px;height:20px;display:block}.detail-title{margin-left:2px;font-size:16px;line-height:24px;font-weight:700;color:#2e355c}.password-header-account{margin-left:auto;font-size:14px;line-height:20px;color:#b0b4c3}.detail-group{margin-top:16px}.detail-group-title{margin:0 0 10px;font-size:14px;line-height:20px;font-weight:700;color:#4a557f}.detail-card{border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px #f0f1f6 inset}.detail-row{min-height:50px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #f3f4f8}.detail-row:first-child{border-top:0}.detail-label{flex:0 0 auto;font-size:14px;line-height:20px;color:#a2a8bd}.detail-value{font-size:14px;line-height:20px;font-weight:700;color:#71789a;text-align:right}.password-form{margin-top:20px}.password-field{display:block}.password-field+.password-field{margin-top:18px}.password-label{display:block;margin-bottom:12px;font-size:14px;line-height:20px;font-weight:700;color:#414b78}.password-input{width:100%;height:42px;padding:0 16px;border-radius:8px;background:#f1f2f9;font-size:14px;line-height:20px;color:#55607f;font-weight:600;transition:background-color .2s ease,box-shadow .2s ease}.password-input-filled{background:#eef0f8;color:#4c567c;box-shadow:inset 0 0 0 1px #5362a80a}.password-input::placeholder{color:#b5b8c8;font-weight:600}.password-tip{display:block;margin-top:8px;font-size:12px;line-height:18px;color:#ffb86a}.password-submit{width:100%;height:42px;margin-top:34px;border-radius:8px;background:linear-gradient(90deg,#8ea2ff 0%,#6f87f3 100%);color:#fff;font-size:16px;line-height:22px;font-weight:700;opacity:.78}.password-submit-ready{background:linear-gradient(90deg,#3556ee 0%,#2f4ee8 100%);opacity:1}.password-submit:disabled{cursor:not-allowed}@media (max-width: 375px){.page-shell{padding-left:18px;padding-right:18px}.brand-logo{width:88px;height:88px;border-radius:24px}.login-form{margin-top:48px}.submit-button{margin-top:40px}.page-footer{margin-top:64px}.page-shell-home{padding-left:12px;padding-right:12px}.home-actions{gap:8px}.merchant-account{font-size:13px}.change-password-image{width:101px;height:auto}.scan-card{padding-left:14px;padding-right:14px}.scan-card-title{font-size:17px}.scan-card-desc{font-size:11px}.manual-entry{grid-template-columns:minmax(0,1fr) 94px}.record-header,.record-row{grid-template-columns:1.1fr 1fr .84fr 26px;padding-left:12px;padding-right:12px}.record-header,.record-name,.record-method,.record-date{font-size:13px}.detail-row{padding-left:16px;padding-right:16px}.detail-label,.detail-value,.password-header-account{font-size:13px}.password-input,.password-submit{height:40px}.date-picker-sheet{width:100%}.scan-sheet{padding-left:14px;padding-right:14px}.scan-region-frame,.scan-region,.scan-region>div,.scan-region video{min-height:320px;height:320px}}
