/* ============================================================
 * user-center.css — Canvast 公共用户中心样式（2026-08-18 抽取）
 * 首页 index.html 与画布页 canvas.html 共用一套。
 * 包含：弹窗/积分/工具箱/加量包/套餐/用户中心全部样式。
 * 改动本文件一处，两页同时生效——禁止再双页同步改样式。
 * ============================================================ */

/* ---------- 通用弹窗 ---------- */
.modal { position:fixed; inset:0; background:rgba(0,0,0,0.5); display:none; align-items:center; justify-content:center; z-index:1000; }
#plans-modal, #buy-points-modal { z-index:1100; }
.modal.show { display:flex; }
.modal-content { background:white; padding:32px; border-radius:20px; width:360px; color:#111; position:relative; }
.modal-content h2 { font-size:22px; font-weight:700; margin-bottom:24px; }
.modal-content input { width:100%; padding:14px; border:1px solid #ddd; border-radius:10px; font-size:15px; margin-bottom:12px; }
.modal-content button { width:100%; padding:14px; border:none; border-radius:10px; cursor:pointer; font-size:15px; font-weight:600; }
.modal-content .primary { background:#111; color:white; margin-top:8px; }
.modal-content .secondary { background:#f0f0f0; color:#111; }
.modal-content .secondary:hover { background:#e2e5f0; }
/* 弹窗关闭按钮（右上角 X）——须覆盖 .modal-content button 的 width:100% */
.modal-content .modal-close { position:absolute; top:16px; right:16px; width:28px !important; height:28px; padding:0; border:1px solid transparent; border-radius:8px; background:transparent; color:#9ca3af; font-size:15px; line-height:1; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; z-index:10; }
.modal-content .modal-close:hover { background:#f3f4f6; color:#111; border-color:#e5e7eb; }

/* ---------- 积分显示 / 导航按钮 ---------- */
.credits-display { display:flex; align-items:center; gap:8px; padding:6px 14px; border-radius:16px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.12); font-size:14px; color:#f4f4ff; }
.credits-display .points { font-weight:700; color:#8b5cf6; }
.upgrade-btn { padding:8px 16px; border:none; border-radius:16px; cursor:pointer; font-size:13px; font-weight:600; background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; }
.buy-points-btn { padding:8px 16px; border:1.5px solid rgba(16,185,129,0.4); border-radius:16px; cursor:pointer; font-size:13px; font-weight:600; background:transparent; color:#6ee7b7; transition:all .2s; }
.buy-points-btn:hover { background:rgba(16,185,129,0.1); }
/* 工具箱按钮（顶部导航，次级样式不抢升级按钮） */
.toolbox-btn { padding:8px 16px; border:1.5px solid rgba(255,255,255,0.18); border-radius:16px; cursor:pointer; font-size:13px; font-weight:600; background:rgba(255,255,255,0.06); color:#e8eaf6; transition:all .2s; }
.toolbox-btn:hover { background:rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.3); }

/* ---------- 技能/工具箱弹出面板（深色扁平简约） ---------- */
.skill-popup { position:fixed; z-index:2000; min-width:320px; background:rgba(38,38,52,0.96); border:1px solid rgba(255,255,255,0.12); border-radius:14px; padding:10px; box-shadow:0 -8px 30px rgba(0,0,0,0.45); backdrop-filter:blur(8px); }
.skill-popup-title { font-size:12px; font-weight:600; color:rgba(255,255,255,0.5); padding:4px 8px 8px; letter-spacing:0.5px; }
.skill-popup-row { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.skill-popup-item { display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:10px; border:none; background:transparent; color:#e8eaf6; font-size:13px; font-weight:500; cursor:pointer; text-align:left; font-family:inherit; transition:background .15s; }
.skill-popup-item:hover { background:rgba(255,255,255,0.08); }
.skill-popup-icon { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:8px; color:#fff; font-size:13px; flex-shrink:0; }

/* ---------- 套餐弹窗（浅色） ---------- */
.plans-modal-content { width:1120px !important; max-width:95vw; border-radius:20px; overflow:hidden; position:relative; }
.plans-modal-content h2 { padding:24px 28px 0; margin:0; font-size:20px; font-weight:700; }
.plans-modal-content .modal-close { position:absolute; top:16px; right:16px; width:28px !important; height:28px; padding:0; border:1px solid transparent; border-radius:8px; background:transparent; color:#9ca3af; font-size:15px; line-height:1; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; }
.plans-modal-content .modal-close:hover { background:#f3f4f6; color:#111; border-color:#e5e7eb; }
/* 月付/年付切换 */
.plans-tabs { display:flex; justify-content:center; gap:0; padding:16px 28px 0; }
.plans-tab { padding:8px 28px; border:1.5px solid #e8e8ef; cursor:pointer; font-size:14px; font-weight:600; color:#6b7280; background:#fafafa; transition:all .2s; }
.plans-tab:first-child { border-radius:10px 0 0 10px; }
.plans-tab:last-child { border-radius:0 10px 10px 0; }
.plans-tab.active { background:#1a1a2e; color:#fff; border-color:#1a1a2e; z-index:1; }
.plans-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; padding:20px 28px 28px; }
.plan-card { position:relative; display:flex; flex-direction:column; background:#fff; border:1.5px solid #e8e8ef; border-radius:16px; padding:24px 18px 20px; text-align:center; transition:all .25s ease; }
.plan-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,0.10); }
.plan-card.current { border:1.5px solid transparent; background:linear-gradient(#fff,#fff) padding-box, linear-gradient(135deg,#6366f1,#8b5cf6) border-box; box-shadow:0 6px 20px rgba(99,102,241,0.15); }
.plan-card.recommended { }
.plan-badge { position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; font-size:11px; font-weight:600; padding:3px 12px; border-radius:999px; white-space:nowrap; box-shadow:0 2px 8px rgba(99,102,241,0.35); }
.rec-badge { position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:linear-gradient(135deg,#10b981,#059669); color:#fff; font-size:11px; font-weight:700; padding:3px 14px; border-radius:999px; white-space:nowrap; box-shadow:0 2px 8px rgba(16,185,129,0.4); letter-spacing:0.5px; }
.plan-card h3 { font-size:18px; font-weight:700; margin:0 0 2px; color:#1a1a2e; }
.plan-card .plan-desc { font-size:11px; color:#9ca3af; margin-bottom:14px; }
.plan-price { font-size:30px; font-weight:800; color:#111; margin:6px 0 2px; line-height:1; }
.plan-price span { font-size:13px; font-weight:500; color:#9ca3af; }
.plan-points { font-size:13px; color:#6b7280; background:#f3f4f6; border-radius:999px; display:inline-block; padding:3px 14px; margin:10px 0 14px; }
.plan-features { list-style:none; text-align:left; margin:0 0 18px; padding:0; flex:1; }
.plan-features li { padding:6px 0; color:#4b5563; font-size:13px; border-bottom:1px dashed #f0f0f4; }
.plan-features li:last-child { border-bottom:none; }
.plan-features li::before { content:'✓'; color:#10b981; margin-right:8px; font-weight:700; }
.plan-card button { width:100%; padding:10px 0; border:none; border-radius:10px; font-size:14px; font-weight:600; cursor:pointer; transition:all .2s; margin-top:auto; }
.plan-card button.primary { background:#111; color:#fff; }
.plan-card button.primary:hover { background:#2a2a3e; }
.plan-card button.primary.green { background:linear-gradient(135deg,#10b981,#059669); color:#fff; }
.plan-card button.primary.green:hover { background:linear-gradient(135deg,#059669,#047857); }
.plan-card button.secondary { background:#eef0f7; color:#374151; }
.plan-card button.secondary:hover { background:#e2e5f0; }
.plan-card button.disabled { background:#f3f4f6; color:#9ca3af; cursor:not-allowed; }

/* ---------- 加量包选项 ---------- */
.points-option { padding:14px 8px; border:1.5px solid #e8e8ef; border-radius:12px; text-align:center; cursor:pointer; font-size:15px; font-weight:700; transition:all .2s; }
.points-option:hover { border-color:#10b981; }
.points-option.selected { border-color:#10b981; background:rgba(16,185,129,0.06); }

/* ---------- 用户中心弹窗（浅色与套餐弹窗一致） ---------- */
.uc-btn { background:none; border:none; cursor:pointer; padding:4px 6px; border-radius:8px; transition:all .2s; display:flex; align-items:center; }
.uc-btn:hover { background:rgba(255,255,255,0.12); }
.nav-avatar { width:28px; height:28px; border-radius:50%; object-fit:cover; display:block; }
.nav-avatar-fallback { width:28px; height:28px; border-radius:50%; background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; font-size:14px; font-weight:600; display:flex; align-items:center; justify-content:center; }
.uc-avatar-wrap { position:relative; flex-shrink:0; }
.uc-avatar-col { display:flex; flex-direction:column; align-items:center; gap:6px; flex-shrink:0; }
.uc-avatar-edit { position:absolute; right:0; bottom:0; width:16px !important; height:16px !important; border-radius:50%; border:2px solid #fff; background:#111; color:#fff; font-size:9px; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0 !important; line-height:1; transition:all .2s; }
.uc-avatar-edit:hover { background:#333; }
.user-center-content { width:900px !important; max-width:95vw; height:86vh; max-height:86vh; display:flex; flex-direction:column; overflow:hidden; padding:0 !important; }
.uc-header { position:relative; display:flex; align-items:flex-start; gap:16px; padding:24px 28px; border-bottom:1px solid #eee; }
.uc-avatar { width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:600; flex-shrink:0; }
.uc-meta { flex:1; min-width:0; padding-top:5px; }
.uc-name { font-size:18px; font-weight:700; color:#111; }
.uc-plan { font-size:13px; color:#666; margin-top:3px; }
.uc-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; align-self:center; }
.uc-action-btn { width:auto !important; padding:5px 12px !important; border-radius:8px !important; border:1px solid #e5e7eb; background:#fff; color:#666; font-size:12px !important; font-weight:500; cursor:pointer; transition:all .2s; line-height:1.5; }
.uc-action-btn:hover { background:#f5f5f5; color:#111; border-color:#d1d5db; }
.uc-action-btn.primary { background:#111; border-color:#111; color:#fff; padding:5px 14px !important; margin-top:0 !important; }
.uc-action-btn.primary:hover { background:#333; border-color:#333; }
.uc-records { padding:16px 28px 28px; overflow-y:auto; flex:1; min-height:0; }
.uc-records-title { font-size:15px; font-weight:600; color:#111; margin-bottom:14px; }
.uc-records-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.uc-record { border-radius:12px; overflow:hidden; border:1px solid #eee; cursor:pointer; position:relative; background:#f8f9fa; transition:transform .2s, box-shadow .2s; }
.uc-record:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,0.12); }
.uc-r-imgwrap { position:relative; }
.uc-record img { width:100%; aspect-ratio:1; object-fit:cover; display:block; }
.uc-dl-btn { position:absolute; left:0; right:0; bottom:0; width:100% !important; height:28px !important; border:none; background:rgba(0,0,0,0.45); color:#fff; font-size:14px !important; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0 !important; line-height:1; transition:background .2s; z-index:2; }
.uc-dl-btn:hover { background:rgba(0,0,0,0.7); }
.uc-record .uc-r-meta { padding:8px 10px; }
.uc-record .uc-r-name { font-size:12px; color:#333; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.uc-record .uc-r-time { font-size:11px; color:#9ca3af; margin-top:2px; }
.uc-record .uc-r-video { width:100%; aspect-ratio:1; display:flex; align-items:center; justify-content:center; background:#eef1ff; color:#6366f1; font-size:30px; }
.uc-empty { grid-column:1/-1; text-align:center; color:#9ca3af; padding:32px 0; }

/* 用户中心 Tab + 消费/订单 + 修改密码 */
.uc-rec-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:0; padding:0 28px 12px; border-bottom:1px solid #eee; }
.uc-tabs { display:flex; align-items:center; }
.uc-tab { border:none; background:none; color:#888; padding:2px 14px !important; font-size:13px !important; font-weight:500 !important; white-space:nowrap; border-radius:0; cursor:pointer; transition:all .2s; line-height:1.6 !important; }
.uc-tab:hover { background:none; color:#111; }
.uc-tab + .uc-tab { border-left:1px solid #e5e7eb; }
.uc-tab.active { background:#111; color:#fff; border-radius:8px; }
.uc-tab.active + .uc-tab { border-left:none; }
.uc-pwd-link { border:none; background:none; color:#111; font-size:12px !important; font-weight:400 !important; padding:0 !important; margin:0; display:block; text-align:center; cursor:pointer; transition:color .2s; line-height:1.5; width:auto !important; border-radius:0 !important; }
.uc-pwd-link:hover { color:#555; }
/* 修改密码 | 开发票 | 邀请码（2026-08-18 v2：三字段同行，底部相平；开发票左对齐企业版；| 两侧间距对称） */
.uc-meta-links { position:absolute; left:33px; top:82px; display:flex; align-items:center; }
.uc-pwd-sep { width:1px; height:12px; background:#d1d5db; margin:0 7px; flex-shrink:0; }

/* 日期范围筛选（v2：无底框+查询/清除按钮） */
.uc-date-filter { display:flex; align-items:center; gap:8px; padding:24px 28px 0; margin-bottom:10px; }
.uc-df-label { font-size:12px; font-weight:600; color:#111; white-space:nowrap; height:24px; display:inline-flex; align-items:center; }
.uc-df-input { border:1px solid #d1d5db; border-radius:6px; padding:2px 6px !important; font-size:12px !important; font-family:inherit !important; color:#333; background:#fff; outline:none; height:24px; width:118px !important; min-width:118px; max-width:118px; box-sizing:border-box; margin-bottom:0 !important; }
.uc-df-input:focus { outline:none; border-color:#6366f1; }
.uc-df-sep { font-size:12px; color:#9ca3af; height:24px; display:inline-flex; align-items:center; }
.uc-df-btn { width:auto !important; border:1px solid #111; background:#111; color:#fff; font-size:12px !important; font-weight:500 !important; padding:2px 12px !important; border-radius:6px !important; cursor:pointer; transition:all .2s; line-height:1.5; height:24px; display:flex; align-items:center; }
.uc-df-btn:hover { background:#333; border-color:#333; }
.uc-df-btn.ghost { background:#fff; color:#666; border-color:#e5e7eb; }
.uc-df-btn.ghost:hover { background:#f5f5f5; color:#111; border-color:#d1d5db; }
.uc-table { width:100%; border-collapse:collapse; font-size:12px; }
.uc-table th { text-align:left; padding:8px 10px; color:#9ca3af; font-weight:500; border-bottom:1px solid #eee; font-size:11px; }
.uc-table td { padding:8px 10px; color:#333; border-bottom:1px solid #f3f4f6; }
.uc-table tr:hover td { background:#fafafa; }
.uc-pos { color:#10b981; font-weight:600; }
.uc-neg { color:#ef4444; font-weight:600; }
.uc-status-paid { color:#10b981; }
.uc-status-pending { color:#d97706; }
.uc-status-closed, .uc-status-failed { color:#9ca3af; }

/* 数据看板（2026-08-18 v2：每日生成/积分花费趋势 + 模型排名） */
.uc-dash { padding:16px 28px 28px; overflow-y:auto; flex:1; min-height:0; }
.uc-dash-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
.uc-dash-card { background:#f8f9fa; border:1px solid #eee; border-radius:12px; padding:16px 18px; text-align:center; }
.uc-dash-card .num { font-size:28px; font-weight:800; color:#111; line-height:1.2; }
.uc-dash-card .lbl { font-size:12px; color:#9ca3af; margin-top:4px; }
.uc-dash-grid2 { display:grid; grid-template-columns:1fr; gap:24px; margin-bottom:20px; }
.uc-dash-title { font-size:13px; font-weight:600; color:#111; margin-bottom:12px; }
.uc-dash-trend { display:flex; align-items:flex-end; gap:6px; height:130px; padding:10px 4px 0; border-bottom:1px solid #eee; }
.uc-dash-day { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:6px; min-width:0; }
.uc-dash-bar { width:70%; background:linear-gradient(180deg,#6366f1,#8b5cf6); border-radius:6px 6px 0 0; min-height:2px; transition:height .3s; }
.uc-dash-bar.spend { background:linear-gradient(180deg,#f87171,#ef4444); }
.uc-dash-bar.empty { background:#e8e8ef; }
.uc-dash-day .d { font-size:10px; color:#9ca3af; white-space:nowrap; }
.uc-dash-day .v { font-size:10px; color:#6b7280; }
/* 模型调用排名 */
.uc-dash-rank { display:flex; flex-direction:column; gap:9px; }
.uc-dash-rank-item { display:flex; align-items:center; gap:10px; font-size:12px; }
.uc-dash-rank-name { width:150px; color:#333; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:0; }
.uc-dash-rank-bar { flex:1; height:8px; background:#f0f0f4; border-radius:999px; overflow:hidden; }
.uc-dash-rank-fill { height:100%; background:linear-gradient(90deg,#6366f1,#8b5cf6); border-radius:999px; min-width:2px; }
.uc-dash-rank-n { width:34px; text-align:right; color:#6b7280; font-variant-numeric:tabular-nums; flex-shrink:0; }
.uc-dash-projects { margin-top:20px; }
.uc-dash-plist { display:flex; flex-wrap:wrap; gap:8px; }
.uc-dash-tag { background:#f3f4f6; border:1px solid #e8e8ef; border-radius:999px; padding:4px 12px; font-size:12px; color:#4b5563; }
.uc-dash-tag b { color:#111; }

/* ═══ 2026-08-20 会员中心·邀请码/开发票弹窗（黑白色调 900×640，与会员中心主体一致） ═══ */
#invite-modal .modal-content, #invoice-modal .modal-content {
    width: 900px; max-width: 94vw; height: 640px; max-height: 88vh;
    background: #fff; color: #111;
    border: 1px solid #e5e7eb; border-radius: 18px;
    padding: 0; overflow: hidden; display: flex; flex-direction: column;
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
    font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
/* 关闭按钮：右上角白底黑字圆形（与灵感弹窗一致） */
#invite-modal .modal-close, #invoice-modal .modal-close, #invoice-info-modal .modal-close {
    position: absolute; top: 14px; right: 14px; width: 30px !important; height: 30px; padding: 0;
    border-radius: 50%; background: rgba(255,255,255,0.94); color: #111; font-size: 14px; font-weight: 700;
    border: none; display: flex; align-items: center; justify-content: center; z-index: 20; cursor: pointer;
    box-shadow: 0 2px 10px rgba(0,0,0,0.4); transition: background .15s, transform .15s;
    font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
#invite-modal .modal-close:hover, #invoice-modal .modal-close:hover, #invoice-info-modal .modal-close:hover { background: #fff; transform: scale(1.06); }
/* 覆盖 .modal-content button 的 width:100%，保证弹窗内行内按钮不被拉伸 */
#invite-modal .modal-content .inv-copy-btn,
#invoice-modal .modal-content .invc-tab,
#invoice-modal .modal-content .invc-outline,
#invoice-modal .modal-content .invc-solid,
#invoice-modal .modal-content .invc-link,
#invoice-modal .modal-content .invc-check { width: auto !important; }

/* ---- 邀请码内容（黑白色调） ---- */
.inv-box { flex: 1; overflow-y: auto; padding: 30px 34px; }
.inv-hero { margin-bottom: 22px; }
.inv-hero h2 { font-size: 23px; font-weight: 700; margin: 0 0 6px; color: #111; }
.inv-hero p { font-size: 13px; color: #666; margin: 0; }
.inv-card { background: #f8f9fa; border: 1px solid #eee; border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
.inv-card.inv-single-line { padding: 12px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.inv-card-label { font-size: 12px; color: rgba(0,0,0,0.5); margin-bottom: 10px; letter-spacing: 0.5px; }
.inv-card.inv-single-line .inv-card-label { margin-bottom: 0; flex-shrink: 0; }
.inv-code-row, .inv-link-row { display: flex; align-items: center; gap: 12px; }
.inv-single-row { display: flex; align-items: center; gap: 12px; }
.inv-code { font-size: 26px; font-weight: 800; letter-spacing: 3px; color: #111; font-family: Consolas,'Courier New',monospace; }
.inv-single-row .inv-code { font-size: 20px; letter-spacing: 2px; }
.inv-link { flex: 1; min-width: 0; font-size: 13px; color: #111; word-break: break-all; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 12px; }
.inv-copy-btn { flex-shrink: 0; padding: 8px 16px; border-radius: 8px; border: 1px solid #111; background: #111; color: #fff; font-size: 12px; font-weight: 600; cursor: pointer; transition: all .15s; }
.inv-copy-btn:hover { background: #333; border-color: #333; color: #fff; }
.inv-copy-btn.copied { background: rgba(16,185,129,0.12); border-color: rgba(16,185,129,0.4); color: #059669; }
.inv-rec-head { font-size: 13px; font-weight: 600; color: #111; margin: 16px 0 10px; }
.inv-rec-body { background: #f8f9fa; border-radius: 10px; padding: 6px 14px; }
.inv-rec-body.inv-scrollable { max-height: 220px; overflow-y: auto; }
.inv-rec-item { display: flex; justify-content: space-between; align-items: center; padding: 9px 2px; border-bottom: 1px solid #f3f4f6; font-size: 13px; color: #333; }
.inv-rec-item:last-child { border-bottom: none; }
.inv-rec-time { font-size: 12px; color: rgba(0,0,0,0.5); }
.inv-empty { padding: 14px 4px; color: #9ca3af; font-size: 13px; text-align: center; }
.inv-rules-list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.inv-rules-list li { font-size: 12.5px; color: #666; line-height: 1.7; }

/* ---- 开发票内容（黑白色调） ---- */
.invc-box { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.invc-top { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; border-bottom: 1px solid #eee; flex-shrink: 0; }
.invc-tabs { display: flex; gap: 26px; }
.invc-tab { background: none; border: none; color: #9ca3af; font-size: 14px; font-weight: 600; padding: 8px 2px; cursor: pointer; border-bottom: 2px solid transparent; }
.invc-tab.active { color: #111; border-bottom-color: #111; }
.invc-actions { display: flex; gap: 10px; }
.invc-outline { padding: 8px 18px; border-radius: 8px; border: 1px solid #d1d5db; background: #fff; color: #111; font-size: 13px; font-weight: 600; cursor: pointer; }
.invc-outline:hover { background: #f3f4f6; border-color: #9ca3af; }
.invc-solid { padding: 8px 18px; border-radius: 8px; border: none; background: #111; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; }
.invc-solid:hover { background: #333; }
.invc-solid[disabled] { opacity: 0.4; cursor: not-allowed; }
.invc-table-wrap { flex: 1; overflow-y: auto; padding: 4px 24px 20px; }
.invc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.invc-table th { text-align: left; padding: 12px 10px; color: #9ca3af; font-weight: 500; font-size: 12px; border-bottom: 1px solid #eee; white-space: nowrap; }
.invc-table td { padding: 12px 10px; border-bottom: 1px solid #f3f4f6; color: #333; white-space: nowrap; }
.invc-table .invc-check-col { width: 36px; }
.invc-table input[type=checkbox] { width: 15px; height: 15px; accent-color: #111; cursor: pointer; margin: 0; }
.invc-status-paid { color: #10b981; }
.invc-link { color: #111; cursor: pointer; background: none; border: none; padding: 0; font-size: 13px; font-weight: 600; }
.invc-link:hover { color: #555; text-decoration: underline; }
.invc-link[disabled] { color: rgba(0,0,0,0.25); cursor: default; text-decoration: none; }
.invc-empty { text-align: center; color: #9ca3af; padding: 44px 0; font-size: 13px; }
.invc-num { font-family: Consolas,'Courier New',monospace; color: #9ca3af; font-size: 12px; }
.invc-total { padding: 10px 24px 14px; font-size: 12px; color: rgba(0,0,0,0.5); flex-shrink: 0; }
.invc-total b { color: #111; }

/* 开票信息小表单（浅色，与修改密码弹窗一致） */
#invoice-info-modal .modal-content { width: 460px; position: relative; }
