/* 发票抬头管理 + 申请发票 */ .invoice-titles-page, .invoice-apply-page { background: var(--color-background); min-height: 100vh; } .invoice-titles-body, .invoice-apply-body { padding: 12px var(--space-page) 80px; } /* —— 发票抬头列表 —— */ .invoice-title-card { background: var(--color-card, #fff); border-radius: var(--radius-lg, 12px); padding: 16px; margin-bottom: 12px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04); } .invoice-title-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .invoice-title-name { font-size: 16px; font-weight: 600; color: var(--color-on-surface, #1a1a1a); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .invoice-title-type { font-size: 12px; color: var(--color-on-surface-variant, #666); background: var(--color-surface-variant, #f0eee9); padding: 2px 8px; border-radius: 4px; flex-shrink: 0; } .invoice-title-default { font-size: 11px; color: #fff; background: var(--color-primary, #A61D24); padding: 2px 6px; border-radius: 4px; flex-shrink: 0; } .invoice-title-line { display: block; font-size: 13px; color: var(--color-on-surface-variant, #888); line-height: 1.8; } .invoice-title-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--color-outline-variant, #eee); } .invoice-title-icon-btn { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; } .invoice-title-icon-btn--hover { opacity: 0.72; } .invoice-title-icon-img { width: 20px; height: 20px; display: block; pointer-events: none; } /* FAB */ .invoice-titles-fab { position: fixed; right: 20px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 40; display: flex; align-items: center; justify-content: center; padding: 12px 24px; border-radius: 999px; background: var(--color-primary, #A61D24); color: #fff; font-size: 15px; font-weight: 600; box-shadow: 0 4px 16px rgba(166, 29, 36, 0.3); } /* —— 编辑/新增底部弹层 —— */ .invoice-title-sheet-mask { position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; justify-content: flex-end; } .invoice-title-sheet-mask-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); } .invoice-title-sheet { position: relative; background: var(--color-card, #fff); border-radius: 16px 16px 0 0; padding: 20px var(--space-page, 16px) calc(20px + env(safe-area-inset-bottom, 0px)); max-height: 85vh; overflow-y: auto; } .invoice-title-sheet-title { display: block; font-size: 18px; font-weight: 600; text-align: center; margin-bottom: 16px; } .invoice-title-field { margin-bottom: 14px; } .invoice-title-label { display: block; font-size: 13px; color: var(--color-on-surface-variant, #666); margin-bottom: 6px; } .invoice-title-star { color: #c62828; margin-right: 2px; font-weight: 600; } .invoice-title-label-hint { margin-left: 6px; font-size: 12px; color: #c62828; font-weight: 500; } .invoice-kind-static { display: block; font-size: 15px; color: var(--color-on-surface, #1a1a1a); line-height: 44px; padding: 0 12px; background: var(--color-surface, #fafafa); border: 1px solid var(--color-outline, #ddd); border-radius: 8px; } .invoice-title-input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--color-outline, #ddd); border-radius: 8px; font-size: 15px; background: var(--color-surface, #fafafa); box-sizing: border-box; } .invoice-title-type-row { display: flex; gap: 10px; } .invoice-title-type-chip { flex: 1; text-align: center; padding: 8px 0; border: 1px solid var(--color-outline, #ddd); border-radius: 8px; font-size: 14px; color: var(--color-on-surface-variant, #666); } .invoice-title-type-chip.active { border-color: var(--color-primary, #A61D24); color: var(--color-primary, #A61D24); background: rgba(166, 29, 36, 0.06); font-weight: 600; } .invoice-title-default-row { display: flex; align-items: center; justify-content: space-between; margin: 16px 0; } .invoice-title-sheet-actions { display: flex; gap: 12px; margin-top: 20px; } .invoice-title-sheet-cancel, .invoice-title-sheet-save { flex: 1; text-align: center; padding: 12px 0; border-radius: 8px; font-size: 15px; font-weight: 600; } .invoice-title-sheet-cancel { background: var(--color-surface-variant, #f0eee9); color: var(--color-on-surface-variant, #666); } .invoice-title-sheet-save { background: var(--color-primary, #A61D24); color: #fff; } .invoice-title-sheet-save.is-disabled { opacity: 0.55; pointer-events: none; } /* —— 申请发票页 —— */ .invoice-apply-order { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 16px; background: var(--color-card, #fff); border-radius: var(--radius-lg, 12px); margin-bottom: 16px; } .invoice-apply-order-label { font-size: 13px; color: var(--color-on-surface-variant, #888); flex-shrink: 0; } .invoice-apply-order-no { font-size: 14px; color: var(--color-on-surface, #333); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .invoice-apply-order-meta { width: 100%; font-size: 13px; color: var(--color-on-surface-variant, #888); } .invoice-apply-status-card { display: flex; align-items: center; gap: 12px; padding: 16px; background: rgba(76, 175, 80, 0.08); border-radius: var(--radius-lg, 12px); margin-bottom: 16px; } .invoice-apply-status-icon { font-size: 24px; color: #4caf50; flex-shrink: 0; } .invoice-apply-status-title { display: block; font-size: 16px; font-weight: 600; color: #2e7d32; } .invoice-apply-status-desc { display: block; font-size: 13px; color: #4caf50; margin-top: 2px; } .invoice-apply-section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; } .invoice-apply-section-title > text:first-child { font-size: 15px; font-weight: 600; color: var(--color-on-surface, #1a1a1a); } .invoice-apply-add-link { font-size: 14px; color: var(--color-primary, #A61D24); font-weight: 500; } .invoice-apply-empty-titles { text-align: center; padding: 40px 0; } .invoice-apply-empty-cta { display: inline-block; margin-top: 12px; padding: 8px 24px; border-radius: 999px; background: var(--color-primary, #A61D24); color: #fff; font-size: 14px; font-weight: 500; } .invoice-apply-title-list { margin-bottom: 16px; } .invoice-apply-title-item { display: flex; align-items: center; gap: 12px; background: var(--color-card, #fff); border-radius: var(--radius-lg, 12px); padding: 16px; margin-bottom: 10px; border: 2px solid transparent; transition: border-color 0.2s; } .invoice-apply-title-item.is-selected { border-color: var(--color-primary, #A61D24); } .invoice-apply-title-info { flex: 1; min-width: 0; } .invoice-apply-title-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; } .invoice-apply-title-name { font-size: 16px; font-weight: 600; color: var(--color-on-surface, #1a1a1a); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .invoice-apply-title-type { font-size: 12px; color: var(--color-on-surface-variant, #666); background: var(--color-surface-variant, #f0eee9); padding: 2px 8px; border-radius: 4px; flex-shrink: 0; } .invoice-apply-title-default { font-size: 11px; color: #fff; background: var(--color-primary, #A61D24); padding: 2px 6px; border-radius: 4px; flex-shrink: 0; } .invoice-apply-title-sub { display: block; font-size: 13px; color: var(--color-on-surface-variant, #888); line-height: 1.6; } .invoice-apply-footer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 12px var(--space-page, 16px) calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--color-card, #fff); box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06); } .invoice-apply-submit { text-align: center; padding: 14px 0; border-radius: 999px; background: var(--color-primary, #A61D24); color: #fff; font-size: 16px; font-weight: 600; } .invoice-apply-submit.is-disabled { opacity: 0.55; pointer-events: none; }