:root {
    --bg: #f2f2f7;
    --card: rgba(255,255,255,0.96);
    --input: #ffffff;
    --text: #1c1c1e;
    --text-sec: #8e8e93;
    --border: rgba(60,60,67,0.08);
    --blue: #007aff;
    --red: #ff3b30;
    --orange: #f08253;
    --green: #34c759;
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.04);
    --shadow-md: 0 8px 24px rgba(0,0,0,0.08);
    --radius: 20px;
    --radius-sm: 14px;
    --safe-bottom: env(safe-area-inset-bottom, 20px);
    --transition: all 0.2s cubic-bezier(0.25,0.1,0.25,1);
}
[data-theme="dark"] {
    --bg: #000000;
    --card: rgba(28,28,30,0.96);
    --input: #2c2c2e;
    --text: #ffffff;
    --text-sec: #98989d;
    --border: rgba(84,84,88,0.2);
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
    --shadow-md: 0 8px 24px rgba(0,0,0,0.3);
}
@media (prefers-color-scheme: dark) {
    [data-theme="auto"] {
        --bg: #000000;
        --card: rgba(28,28,30,0.96);
        --input: #2c2c2e;
        --text: #ffffff;
        --text-sec: #98989d;
        --border: rgba(84,84,88,0.2);
        --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
        --shadow-md: 0 8px 24px rgba(0,0,0,0.3);
    }
}
* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
body {
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    padding-bottom: calc(100px + var(--safe-bottom));
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}
::-webkit-scrollbar { width:4px; height:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--text-sec); border-radius:4px; }

.header { padding:12px 16px 8px; position:sticky; top:0; background:var(--bg); backdrop-filter:blur(20px); z-index:100; border-bottom:0.5px solid var(--border); }
.search-wrapper { display:flex; align-items:center; gap:8px; background:var(--input); padding:8px 14px; border-radius:40px; box-shadow:inset 0 0 0 0.5px var(--border); margin-bottom:12px; transition:var(--transition); }
.search-wrapper:focus-within { box-shadow:inset 0 0 0 2px var(--blue); }
#search { flex:1; border:none; background:transparent; font-size:16px; outline:none; color:var(--text); }
.voice-btn, .clear-search-btn { font-size:20px; cursor:pointer; padding:6px; border-radius:30px; transition:var(--transition); }
.voice-btn:active, .clear-search-btn:active { background:rgba(0,122,255,0.15); }
.clear-search-btn { display:none; }
.clear-search-btn.visible { display:block; }

.tag-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.tag-scroll { display:flex; overflow-x:auto; gap:10px; padding-bottom:6px; scrollbar-width:none; flex:1; }
.tag-scroll::-webkit-scrollbar { display:none; }
.tag-item { display:flex; flex-direction:column; align-items:center; min-width:56px; cursor:pointer; transition:transform 0.1s; }
.tag-item:active { transform:scale(0.94); }
.tag-icon { width:40px; height:40px; border-radius:30px; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:16px; margin-bottom:4px; transition:var(--transition); box-shadow:0 1px 3px rgba(0,0,0,0.1); }
.tag-item.active .tag-icon { background:var(--blue); box-shadow:0 4px 10px rgba(0,122,255,0.3); transform:scale(1.02); }
.tag-label { font-size:11px; font-weight:500; color:var(--text-sec); }
.tag-item.active .tag-label { color:var(--blue); font-weight:600; }
.header-actions { display:flex; gap:8px; }
.icon-btn { background:var(--card); border:0.5px solid var(--border); border-radius:30px; padding:8px 12px; font-size:14px; cursor:pointer; transition:var(--transition); color:var(--text); display:inline-flex; align-items:center; gap:6px; font-weight:500; }
.icon-btn:active { transform:scale(0.96); background:var(--blue); color:white; border-color:var(--blue); }

.contact-item, .order-card, .report-section {
    background:var(--card);
    margin:12px 16px;
    padding:16px;
    border-radius:var(--radius);
    border:0.5px solid var(--border);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
    backdrop-filter:blur(2px);
}
.order-card:active { transform:scale(0.98); box-shadow:var(--shadow-md); }
.avatar { width:52px; height:52px; border-radius:52px; background:linear-gradient(135deg,#ff9500,#ff3b30); color:white; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:20px; margin-right:14px; flex-shrink:0; }
.color-0 { background:linear-gradient(135deg,#ff9500,#ff6347); }
.color-1 { background:linear-gradient(135deg,#34c759,#28a745); }
.color-2 { background:linear-gradient(135deg,#5856d6,#5e5ce0); }
.order-meta { font-size:12px; color:var(--text-sec); display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.order-body { display:flex; justify-content:space-between; align-items:center; }
.type-tag { font-size:11px; padding:4px 10px; border-radius:20px; color:white; font-weight:600; }
.bg-cash { background:#34c759; }
.bg-card { background:#007aff; }
.bg-tip { background:#f08253; }
.order-note { margin-top:8px; font-size:12px; color:var(--orange); }
.order-phone-wrap { display:flex; align-items:center; gap:4px; }
.order-phone-link { color:var(--blue); font-weight:500; text-decoration:none; }
.order-phone-detail { font-size:18px; color:var(--text-sec); cursor:pointer; padding:2px 6px; }
.order-phone-detail:active { opacity:0.5; }
.tip-display { font-size:12px; margin-left:12px; white-space:nowrap; }
.contact-name-area { flex:1; cursor:pointer; }
.date-picker-bar {
    padding:12px 16px;
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--card);
    border-bottom:0.5px solid var(--border);
    position:sticky;
    top:0;
    z-index:90;
}
.date-picker-bar input {
    flex:2;
    background:var(--input);
    border:0.5px solid var(--border);
    padding:10px 12px;
    border-radius:30px;
    font-size:15px;
    color:var(--text);
}
.order-type-filter {
    flex:1;
    background:var(--input);
    border:0.5px solid var(--border);
    padding:10px 12px;
    border-radius:30px;
    font-size:15px;
    color:var(--text);
    outline:none;
    -webkit-appearance:none;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%238e8e93'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    padding-right:32px;
}

.settlement-panel {
    position:fixed; bottom:calc(85px + var(--safe-bottom)); left:16px; right:16px;
    background:rgba(30,30,32,0.92); backdrop-filter:blur(20px); color:white;
    padding:16px; border-radius:28px; z-index:95; display:grid; grid-template-columns:1fr 1fr; gap:12px;
    box-shadow:0 -4px 20px rgba(0,0,0,0.2); border:0.5px solid rgba(255,255,255,0.15);
}
.settlement-panel div { font-size:12px; display:flex; justify-content:space-between; align-items:center; }
.settlement-panel b { font-size:15px; font-weight:700; }
.settlement-total { grid-column:span 2; border-top:0.5px solid rgba(255,255,255,0.2); padding-top:12px; margin-top:6px; color:#ffeb3b; justify-content:space-between; }
.settlement-income-row { grid-column:span 2; background:rgba(255,255,255,0.1); border-radius:20px; padding:8px 12px; margin-top:4px; justify-content:space-between; }

.tab-bar {
    position:fixed; bottom:0; left:0; right:0; height:calc(80px + var(--safe-bottom));
    background:var(--card); backdrop-filter:blur(20px); border-top:0.5px solid var(--border);
    display:flex; justify-content:space-around; align-items:center; padding-bottom:var(--safe-bottom); z-index:1000;
}
.tab-item { display:flex; flex-direction:column; align-items:center; font-size:10px; color:var(--text-sec); flex:1; cursor:pointer; padding:6px 0; transition:var(--transition); gap:2px; }
.tab-item.active { color:var(--blue); font-weight:600; }
.tab-icon { font-size:24px; }
.fab-main { width:64px; height:64px; background:var(--orange); border-radius:64px; display:flex; align-items:center; justify-content:center; color:white; font-size:32px; margin-top:-32px; box-shadow:0 6px 16px rgba(240,130,83,0.4); border:4px solid var(--card); cursor:pointer; transition:var(--transition); }
.fab-main:active { transform:scale(0.92); }

.overlay {
    position:fixed; inset:0; background:var(--bg); display:none; flex-direction:column; z-index:2000; animation:slideUp 0.28s ease;
}
.overlay.open { display:flex; }
@keyframes slideUp { from { transform:translateY(30px); opacity:0; } to { transform:translateY(0); opacity:1; } }
.form-header { display:flex; justify-content:space-between; padding:16px 20px; border-bottom:0.5px solid var(--border); background:var(--card); align-items:center; font-weight:600; }
.form-body { padding:20px; overflow-y:auto; }
.input-group { margin-bottom:20px; position:relative; }
.input-group label { display:block; font-size:12px; color:var(--text-sec); margin-bottom:6px; font-weight:600; letter-spacing:0.3px; }
.input-group input, .input-group textarea, .input-group select {
    width:100%; background:var(--input); border:0.5px solid var(--border);
    padding:14px 16px; border-radius:20px; color:var(--text); font-size:16px;
    outline:none; transition:var(--transition);
}
.input-group input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,122,255,0.1); }
.suggestions-list {
    position:absolute; top:100%; left:0; right:0; background:var(--card); border:0.5px solid var(--border);
    border-radius:16px; max-height:200px; overflow-y:auto; z-index:100; box-shadow:var(--shadow-md); display:none;
}
.suggestions-list.show { display:block; }
.suggestion-item { padding:12px 16px; cursor:pointer; transition:var(--transition); font-size:14px; border-bottom:0.5px solid var(--border); }
.suggestion-item:last-child { border-bottom:none; }
.suggestion-item:active { background:rgba(0,122,255,0.1); }
.suggestion-item .phone { font-weight:500; color:var(--blue); }
.suggestion-item .info { font-size:12px; color:var(--text-sec); margin-left:6px; }
.no-match { padding:12px 16px; color:var(--text-sec); font-size:14px; text-align:center; }

.btn-primary { background:var(--blue); color:white; border:none; padding:14px; border-radius:20px; font-weight:600; font-size:16px; cursor:pointer; transition:var(--transition); width:100%; margin-top:8px; }
.btn-primary:active { transform:scale(0.97); opacity:0.9; }
.btn-danger { background:rgba(255,59,48,0.1); border:0.5px solid var(--red); color:var(--red); padding:14px; border-radius:20px; font-weight:600; font-size:16px; cursor:pointer; width:100%; margin-top:8px; }
.rel-chip-group { display:flex; flex-wrap:wrap; gap:8px; }
.rel-chip { padding:8px 16px; background:var(--input); border-radius:40px; border:0.5px solid var(--border); cursor:pointer; transition:var(--transition); font-size:14px; }
.rel-chip.active { background:var(--blue); color:white; border-color:var(--blue); }
.detail-row { margin-bottom:12px; display:flex; font-size:15px; align-items:center; }
.detail-label { width:80px; color:var(--text-sec); font-weight:500; }
.detail-value { flex:1; color:var(--text); word-break:break-word; }
.detail-value a { color:var(--blue); text-decoration:none; }
.button-group { display:flex; gap:12px; margin-top:20px; }
.empty-state { text-align:center; padding:60px 20px; color:var(--text-sec); }
.sys-toast { position:fixed; bottom:120px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,0.85); color:white; padding:12px 24px; border-radius:40px; z-index:9999; font-size:14px; font-weight:500; pointer-events:none; backdrop-filter:blur(10px); opacity:0; transition:opacity 0.2s; }
.contact-total-stats { margin:10px 16px 20px; padding:12px; background:var(--card); border-radius:40px; text-align:center; font-size:13px; font-weight:500; color:var(--blue); border:0.5px solid var(--border); }
.tag-mgr-row { display:flex; justify-content:space-between; padding:14px; background:var(--card); border-radius:20px; margin-bottom:8px; border:0.5px solid var(--border); }
.action-link { cursor:pointer; font-size:14px; font-weight:600; padding:4px 8px; border-radius:8px; }
.action-link.rename { color:var(--blue); }
.action-link.delete { color:var(--red); }
.backup-row { display:flex; gap:12px; margin-top:12px; }
.settings-menu-item { padding:14px 16px; border-bottom:0.5px solid var(--border); cursor:pointer; font-size:15px; }
.type-selector { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:15px; }
.type-btn { padding:12px; background:var(--input); border:0.5px solid var(--border); border-radius:40px; text-align:center; cursor:pointer; transition:var(--transition); }
.type-btn.active { background:var(--blue); color:white; border-color:var(--blue); }
.overview-card { display:flex; justify-content:space-between; margin:12px 16px 0; background:linear-gradient(135deg,#f08253,#e06c3d); border-radius:24px; padding:16px; color:white; }
.overview-card div { display:flex; flex-direction:column; align-items:center; gap:4px; }
.overview-card span { font-size:11px; opacity:0.9; }
.overview-card b { font-size:18px; font-weight:700; }
.report-stats-card { background:linear-gradient(135deg,#007aff,#005bb5); border-radius:24px; padding:16px; margin-top:16px; color:white; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.report-stats-card div { display:flex; flex-direction:column; font-size:11px; opacity:0.9; }
.report-stats-card b { font-size:18px; margin-top:3px; }
.report-stats-card .stat-highlight { grid-column:span 2; flex-direction:row; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,0.25); padding-top:10px; }
.chart-container { margin-top:15px; max-height:200px; }
.report-controls { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.report-select, .report-date, .report-year { flex:1; background:var(--input); border:0.5px solid var(--border); border-radius:30px; padding:8px 12px; color:var(--text); }
.search-row { display:flex; gap:8px; }
.search-row button { background:var(--blue); border:none; border-radius:30px; padding:12px 20px; color:white; cursor:pointer; }
.addr-row { margin-top:8px; display:flex; align-items:center; }
.addr-row .addr-text { color:var(--blue); cursor:pointer; flex:1; }
.addr-nav-btn { background:var(--blue); color:white; border:none; border-radius:20px; padding:4px 12px; font-size:12px; cursor:pointer; margin-left:8px; white-space:nowrap; }
.rank-item { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:0.5px solid var(--border); }
.rank-num { width:24px; height:24px; background:var(--border); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:bold; margin-right:10px; }
.rank-1 { background:#ffd700; color:#fff; }
.rank-2 { background:#c0c0c0; color:#fff; }
.rank-3 { background:#cd7f32; color:#fff; }
.contact-detail-card { background:var(--card); border-radius:var(--radius); padding:16px; margin:16px; }
.contact-detail-header { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.contact-detail-info { flex:1; }
.contact-detail-actions { display:flex; gap:12px; margin-top:16px; }
.theme-switch { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:0.5px solid var(--border); }
.settings-card { margin-bottom:16px; }

/* 流水卡片地址+宠物行 */
.order-contact-row {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    font-size: 12px;
    align-items: center;
}
.addr-block {
    flex: 3;
    color: var(--blue);
    cursor: pointer;
    white-space: nowrap;:root {
    --bg: #f2f2f7;
    --card: rgba(255,255,255,0.96);
    --input: #ffffff;
    --text: #1c1c1e;
    --text-sec: #8e8e93;
    --border: rgba(60,60,67,0.08);
    --blue: #007aff;
    --red: #ff3b30;
    --orange: #f08253;
    --green: #34c759;
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.04);
    --shadow-md: 0 8px 24px rgba(0,0,0,0.08);
    --radius: 20px;
    --radius-sm: 14px;
    --safe-bottom: env(safe-area-inset-bottom, 20px);
    --transition: all 0.2s cubic-bezier(0.25,0.1,0.25,1);
}
[data-theme="dark"] {
    --bg: #000000;
    --card: rgba(28,28,30,0.96);
    --input: #2c2c2e;
    --text: #ffffff;
    --text-sec: #98989d;
    --border: rgba(84,84,88,0.2);
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
    --shadow-md: 0 8px 24px rgba(0,0,0,0.3);
}
@media (prefers-color-scheme: dark) {
    [data-theme="auto"] {
        --bg: #000000;
        --card: rgba(28,28,30,0.96);
        --input: #2c2c2e;
        --text: #ffffff;
        --text-sec: #98989d;
        --border: rgba(84,84,88,0.2);
        --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
        --shadow-md: 0 8px 24px rgba(0,0,0,0.3);
    }
}
* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
body {
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    padding-bottom: calc(100px + var(--safe-bottom));
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}
::-webkit-scrollbar { width:4px; height:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--text-sec); border-radius:4px; }

.header { padding:12px 16px 8px; position:sticky; top:0; background:var(--bg); backdrop-filter:blur(20px); z-index:100; border-bottom:0.5px solid var(--border); }
.search-wrapper { display:flex; align-items:center; gap:8px; background:var(--input); padding:8px 14px; border-radius:40px; box-shadow:inset 0 0 0 0.5px var(--border); margin-bottom:12px; transition:var(--transition); }
.search-wrapper:focus-within { box-shadow:inset 0 0 0 2px var(--blue); }
#search { flex:1; border:none; background:transparent; font-size:16px; outline:none; color:var(--text); }
.voice-btn, .clear-search-btn { font-size:20px; cursor:pointer; padding:6px; border-radius:30px; transition:var(--transition); }
.voice-btn:active, .clear-search-btn:active { background:rgba(0,122,255,0.15); }
.clear-search-btn { display:none; }
.clear-search-btn.visible { display:block; }

.tag-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.tag-scroll { display:flex; overflow-x:auto; gap:10px; padding-bottom:6px; scrollbar-width:none; flex:1; }
.tag-scroll::-webkit-scrollbar { display:none; }
.tag-item { display:flex; flex-direction:column; align-items:center; min-width:56px; cursor:pointer; transition:transform 0.1s; }
.tag-item:active { transform:scale(0.94); }
.tag-icon { width:40px; height:40px; border-radius:30px; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:16px; margin-bottom:4px; transition:var(--transition); box-shadow:0 1px 3px rgba(0,0,0,0.1); }
.tag-item.active .tag-icon { background:var(--blue); box-shadow:0 4px 10px rgba(0,122,255,0.3); transform:scale(1.02); }
.tag-label { font-size:11px; font-weight:500; color:var(--text-sec); }
.tag-item.active .tag-label { color:var(--blue); font-weight:600; }
.header-actions { display:flex; gap:8px; }
.icon-btn { background:var(--card); border:0.5px solid var(--border); border-radius:30px; padding:8px 12px; font-size:14px; cursor:pointer; transition:var(--transition); color:var(--text); display:inline-flex; align-items:center; gap:6px; font-weight:500; }
.icon-btn:active { transform:scale(0.96); background:var(--blue); color:white; border-color:var(--blue); }

.contact-item, .order-card, .report-section {
    background:var(--card);
    margin:12px 16px;
    padding:16px;
    border-radius:var(--radius);
    border:0.5px solid var(--border);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
    backdrop-filter:blur(2px);
}
.order-card:active { transform:scale(0.98); box-shadow:var(--shadow-md); }
.avatar { width:52px; height:52px; border-radius:52px; background:linear-gradient(135deg,#ff9500,#ff3b30); color:white; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:20px; margin-right:14px; flex-shrink:0; }
.color-0 { background:linear-gradient(135deg,#ff9500,#ff6347); }
.color-1 { background:linear-gradient(135deg,#34c759,#28a745); }
.color-2 { background:linear-gradient(135deg,#5856d6,#5e5ce0); }
.order-meta { font-size:12px; color:var(--text-sec); display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.order-body { display:flex; justify-content:space-between; align-items:center; }
.type-tag { font-size:11px; padding:4px 10px; border-radius:20px; color:white; font-weight:600; }
.bg-cash { background:#34c759; }
.bg-card { background:#007aff; }
.bg-tip { background:#f08253; }
.order-note { margin-top:8px; font-size:12px; color:var(--orange); }
.order-phone-wrap { display:flex; align-items:center; gap:4px; }
.order-phone-link { color:var(--blue); font-weight:500; text-decoration:none; }
.order-phone-detail { font-size:18px; color:var(--text-sec); cursor:pointer; padding:2px 6px; }
.order-phone-detail:active { opacity:0.5; }
.tip-display { font-size:12px; margin-left:12px; white-space:nowrap; }
.contact-name-area { flex:1; cursor:pointer; }
.date-picker-bar {
    padding:12px 16px;
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--card);
    border-bottom:0.5px solid var(--border);
    position:sticky;
    top:0;
    z-index:90;
}
.date-picker-bar input {
    flex:2;
    background:var(--input);
    border:0.5px solid var(--border);
    padding:10px 12px;
    border-radius:30px;
    font-size:15px;
    color:var(--text);
}
.order-type-filter {
    flex:1;
    background:var(--input);
    border:0.5px solid var(--border);
    padding:10px 12px;
    border-radius:30px;
    font-size:15px;
    color:var(--text);
    outline:none;
    -webkit-appearance:none;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%238e8e93'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    padding-right:32px;
}

.settlement-panel {
    position:fixed; bottom:calc(85px + var(--safe-bottom)); left:16px; right:16px;
    background:rgba(30,30,32,0.92); backdrop-filter:blur(20px); color:white;
    padding:16px; border-radius:28px; z-index:95; display:grid; grid-template-columns:1fr 1fr; gap:12px;
    box-shadow:0 -4px 20px rgba(0,0,0,0.2); border:0.5px solid rgba(255,255,255,0.15);
}
.settlement-panel div { font-size:12px; display:flex; justify-content:space-between; align-items:center; }
.settlement-panel b { font-size:15px; font-weight:700; }
.settlement-total { grid-column:span 2; border-top:0.5px solid rgba(255,255,255,0.2); padding-top:12px; margin-top:6px; color:#ffeb3b; justify-content:space-between; }
.settlement-income-row { grid-column:span 2; background:rgba(255,255,255,0.1); border-radius:20px; padding:8px 12px; margin-top:4px; justify-content:space-between; }

.tab-bar {
    position:fixed; bottom:0; left:0; right:0; height:calc(80px + var(--safe-bottom));
    background:var(--card); backdrop-filter:blur(20px); border-top:0.5px solid var(--border);
    display:flex; justify-content:space-around; align-items:center; padding-bottom:var(--safe-bottom); z-index:1000;
}
.tab-item { display:flex; flex-direction:column; align-items:center; font-size:10px; color:var(--text-sec); flex:1; cursor:pointer; padding:6px 0; transition:var(--transition); gap:2px; }
.tab-item.active { color:var(--blue); font-weight:600; }
.tab-icon { font-size:24px; }
.fab-main { width:64px; height:64px; background:var(--orange); border-radius:64px; display:flex; align-items:center; justify-content:center; color:white; font-size:32px; margin-top:-32px; box-shadow:0 6px 16px rgba(240,130,83,0.4); border:4px solid var(--card); cursor:pointer; transition:var(--transition); }
.fab-main:active { transform:scale(0.92); }

.overlay {
    position:fixed; inset:0; background:var(--bg); display:none; flex-direction:column; z-index:2000; animation:slideUp 0.28s ease;
}
.overlay.open { display:flex; }
@keyframes slideUp { from { transform:translateY(30px); opacity:0; } to { transform:translateY(0); opacity:1; } }
.form-header { display:flex; justify-content:space-between; padding:16px 20px; border-bottom:0.5px solid var(--border); background:var(--card); align-items:center; font-weight:600; }
.form-body { padding:20px; overflow-y:auto; }
.input-group { margin-bottom:20px; position:relative; }
.input-group label { display:block; font-size:12px; color:var(--text-sec); margin-bottom:6px; font-weight:600; letter-spacing:0.3px; }
.input-group input, .input-group textarea, .input-group select {
    width:100%; background:var(--input); border:0.5px solid var(--border);
    padding:14px 16px; border-radius:20px; color:var(--text); font-size:16px;
    outline:none; transition:var(--transition);
}
.input-group input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,122,255,0.1); }
.suggestions-list {
    position:absolute; top:100%; left:0; right:0; background:var(--card); border:0.5px solid var(--border);
    border-radius:16px; max-height:200px; overflow-y:auto; z-index:100; box-shadow:var(--shadow-md); display:none;
}
.suggestions-list.show { display:block; }
.suggestion-item { padding:12px 16px; cursor:pointer; transition:var(--transition); font-size:14px; border-bottom:0.5px solid var(--border); }
.suggestion-item:last-child { border-bottom:none; }
.suggestion-item:active { background:rgba(0,122,255,0.1); }
.suggestion-item .phone { font-weight:500; color:var(--blue); }
.suggestion-item .info { font-size:12px; color:var(--text-sec); margin-left:6px; }
.no-match { padding:12px 16px; color:var(--text-sec); font-size:14px; text-align:center; }

.btn-primary { background:var(--blue); color:white; border:none; padding:14px; border-radius:20px; font-weight:600; font-size:16px; cursor:pointer; transition:var(--transition); width:100%; margin-top:8px; }
.btn-primary:active { transform:scale(0.97); opacity:0.9; }
.btn-danger { background:rgba(255,59,48,0.1); border:0.5px solid var(--red); color:var(--red); padding:14px; border-radius:20px; font-weight:600; font-size:16px; cursor:pointer; width:100%; margin-top:8px; }
.rel-chip-group { display:flex; flex-wrap:wrap; gap:8px; }
.rel-chip { padding:8px 16px; background:var(--input); border-radius:40px; border:0.5px solid var(--border); cursor:pointer; transition:var(--transition); font-size:14px; }
.rel-chip.active { background:var(--blue); color:white; border-color:var(--blue); }
.detail-row { margin-bottom:12px; display:flex; font-size:15px; align-items:center; }
.detail-label { width:80px; color:var(--text-sec); font-weight:500; }
.detail-value { flex:1; color:var(--text); word-break:break-word; }
.detail-value a { color:var(--blue); text-decoration:none; }
.button-group { display:flex; gap:12px; margin-top:20px; }
.empty-state { text-align:center; padding:60px 20px; color:var(--text-sec); }
.sys-toast { position:fixed; bottom:120px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,0.85); color:white; padding:12px 24px; border-radius:40px; z-index:9999; font-size:14px; font-weight:500; pointer-events:none; backdrop-filter:blur(10px); opacity:0; transition:opacity 0.2s; }
.contact-total-stats { margin:10px 16px 20px; padding:12px; background:var(--card); border-radius:40px; text-align:center; font-size:13px; font-weight:500; color:var(--blue); border:0.5px solid var(--border); }
.tag-mgr-row { display:flex; justify-content:space-between; padding:14px; background:var(--card); border-radius:20px; margin-bottom:8px; border:0.5px solid var(--border); }
.action-link { cursor:pointer; font-size:14px; font-weight:600; padding:4px 8px; border-radius:8px; }
.action-link.rename { color:var(--blue); }
.action-link.delete { color:var(--red); }
.backup-row { display:flex; gap:12px; margin-top:12px; }
.settings-menu-item { padding:14px 16px; border-bottom:0.5px solid var(--border); cursor:pointer; font-size:15px; }
.type-selector { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:15px; }
.type-btn { padding:12px; background:var(--input); border:0.5px solid var(--border); border-radius:40px; text-align:center; cursor:pointer; transition:var(--transition); }
.type-btn.active { background:var(--blue); color:white; border-color:var(--blue); }
.overview-card { display:flex; justify-content:space-between; margin:12px 16px 0; background:linear-gradient(135deg,#f08253,#e06c3d); border-radius:24px; padding:16px; color:white; }
.overview-card div { display:flex; flex-direction:column; align-items:center; gap:4px; }
.overview-card span { font-size:11px; opacity:0.9; }
.overview-card b { font-size:18px; font-weight:700; }
.report-stats-card { background:linear-gradient(135deg,#007aff,#005bb5); border-radius:24px; padding:16px; margin-top:16px; color:white; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.report-stats-card div { display:flex; flex-direction:column; font-size:11px; opacity:0.9; }
.report-stats-card b { font-size:18px; margin-top:3px; }
.report-stats-card .stat-highlight { grid-column:span 2; flex-direction:row; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,0.25); padding-top:10px; }
.chart-container { margin-top:15px; max-height:200px; }
.report-controls { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.report-select, .report-date, .report-year { flex:1; background:var(--input); border:0.5px solid var(--border); border-radius:30px; padding:8px 12px; color:var(--text); }
.search-row { display:flex; gap:8px; }
.search-row button { background:var(--blue); border:none; border-radius:30px; padding:12px 20px; color:white; cursor:pointer; }
.addr-row { margin-top:8px; display:flex; align-items:center; }
.addr-row .addr-text { color:var(--blue); cursor:pointer; flex:1; }
.addr-nav-btn { background:var(--blue); color:white; border:none; border-radius:20px; padding:4px 12px; font-size:12px; cursor:pointer; margin-left:8px; white-space:nowrap; }
.rank-item { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:0.5px solid var(--border); }
.rank-num { width:24px; height:24px; background:var(--border); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:bold; margin-right:10px; }
.rank-1 { background:#ffd700; color:#fff; }
.rank-2 { background:#c0c0c0; color:#fff; }
.rank-3 { background:#cd7f32; color:#fff; }
.contact-detail-card { background:var(--card); border-radius:var(--radius); padding:16px; margin:16px; }
.contact-detail-header { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.contact-detail-info { flex:1; }
.contact-detail-actions { display:flex; gap:12px; margin-top:16px; }
.theme-switch { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:0.5px solid var(--border); }
.settings-card { margin-bottom:16px; }

/* v1.44 新增样式 */
.order-contact-row {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    font-size: 12px;
    align-items: center;
}
.addr-block {
    flex: 3;
    color: var(--blue);
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pet-block {
    flex: 1;
    color: var(--text-sec);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: right;
}
.addr-block:active {
    opacity: 0.6;
}
.order-contact-row > :only-child {
    flex: 1;
}
    overflow: hidden;
    text-overflow: ellipsis;
}
.pet-block {
    flex: 1;
    color: var(--text-sec);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: right;
}
.addr-block:active {
    opacity: 0.6;
}
.order-contact-row > :only-child {
    flex: 1;
}