:root{--van-primary-color: #c7000b;--tl-brand: #c7000b;--tl-brand-dark: #9e0009;--tl-brand-soft: #fdf4f3;--tl-bg: #f6f7f9;--tl-text-main: #1f2329;--tl-text-sub: #8a8f99;--tl-border: #ebedf0;--tl-ink: #2b2b2b}*{-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--tl-bg);color:var(--tl-text-main);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}#app{min-height:100vh}.tl-page{min-height:100vh;background:var(--tl-bg);box-sizing:border-box}.tl-card{background:#fff;border-radius:12px;margin:12px;padding:16px;box-shadow:0 1px 4px #1f23290d}.tl-card-title{font-size:15px;font-weight:600;margin:0 0 12px;display:flex;align-items:center;gap:8px}.tl-card-title:before{content:"";width:4px;height:14px;border-radius:2px;background:var(--tl-brand)}.tl-muted{color:var(--tl-text-sub);font-size:12px}.auth-page{min-height:100vh;background:var(--tl-bg);padding:56px 0 32px;box-sizing:border-box}.auth-brand{text-align:center;margin-bottom:28px}.auth-logo{width:64px;height:64px;margin:0 auto 14px;border-radius:16px;background:var(--tl-brand);color:#fff;font-size:32px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #c7000b38}.auth-title{font-size:22px;font-weight:700;margin:0 0 6px}.auth-sub{font-size:13px;color:var(--tl-text-sub);margin:0}.auth-actions{padding:20px 24px 0;display:flex;flex-direction:column;gap:12px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat-item{text-align:center;padding:8px 0;border-radius:10px;background:#fafbfc}.stat-num{font-size:20px;font-weight:700;line-height:1.3}.stat-label{font-size:12px;color:var(--tl-text-sub);margin-top:2px}.timeline{padding:4px 0 0}.timeline-item{position:relative;padding:0 0 18px 22px;margin-left:6px;border-left:2px solid var(--tl-border)}.timeline-item:last-child{border-left-color:transparent;padding-bottom:4px}.timeline-dot{position:absolute;left:-7px;top:3px;width:10px;height:10px;border-radius:50%;background:#c8c9cc;border:2px solid #fff;box-shadow:0 0 0 1px var(--tl-border)}.timeline-item.is-done .timeline-dot{background:#2e7d32}.timeline-item.is-current .timeline-dot{background:var(--tl-brand)}.timeline-item.is-rejected .timeline-dot{background:#ee0a24}.timeline-title{font-size:14px;font-weight:600;line-height:1.4}.timeline-desc{font-size:12px;color:var(--tl-text-sub);margin-top:3px;line-height:1.5}.timeline-time{font-size:12px;color:var(--tl-text-sub);margin-top:2px}.approval-card{background:#fff;border-radius:12px;margin:12px;padding:14px 16px 12px;box-shadow:0 1px 4px #1f23290d}.approval-card-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--tl-text-sub);margin-bottom:10px}.approval-trio{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px;background:var(--tl-brand-soft);border-left:3px solid var(--tl-brand);border-radius:10px;padding:12px 10px}.trio-label{font-size:11px;color:var(--tl-text-sub);margin-bottom:4px}.trio-value{font-size:14px;font-weight:700;line-height:1.35;word-break:break-all}.trio-sub{font-size:11px;color:var(--tl-text-sub);margin-top:3px;line-height:1.4}.approval-extra{font-size:12px;color:#646a73;line-height:1.6;margin:10px 2px 0}.approval-actions{display:flex;gap:12px;margin-top:12px}.approval-actions .van-button{flex:1}.detail-footer{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -1px 6px #0000000f}.detail-footer .van-button{flex:1}.page-with-footer{padding-bottom:88px}.list-item-title{font-size:15px;font-weight:600;line-height:1.4}.list-item-sub{font-size:12px;color:var(--tl-text-sub);margin-top:4px;line-height:1.5}.num-mono{font-variant-numeric:tabular-nums;font-family:SF Mono,SFMono-Regular,Consolas,Courier New,monospace}
