:root {
    --primary: #2563eb;
}

body {
    /* 纯本地：系统字体，不拉 Google Fonts */
    font-family: system-ui, -apple-system, 'Segoe UI', 'Microsoft YaHei', 'PingFang SC', 'Noto Sans SC', sans-serif;
    font-size: 15px;
}

.modern-table {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.account-row {
    transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.account-row:hover {
    background-color: #f8fafc;
}

.account-row[data-group="0"] { box-shadow: inset 5px 0 0 #2563eb; }
.account-row[data-group="1"] { box-shadow: inset 5px 0 0 #059669; }

/* 两层列表：手机号父行 + 账号ID子行 */
.phone-group-row {
    background: linear-gradient(to right, #f1f5f9 0%, #f8fafc 100%);
    transition: background-color 0.15s ease;
}

.phone-group-row:hover {
    background: linear-gradient(to right, #e2e8f0 0%, #f1f5f9 100%);
}

.phone-group-row[data-group="0"] { box-shadow: inset 5px 0 0 #2563eb; }
.phone-group-row[data-group="1"] { box-shadow: inset 5px 0 0 #059669; }

.account-child-row {
    background-color: #fff;
}

.account-child-row:hover {
    background-color: #f8fafc;
}

.account-child-row .tree-child-label {
    padding-left: 0.5rem;
}

.tree-branch {
    color: #94a3b8;
    width: 0.75rem;
    text-align: center;
}

.phone-id-count {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    background: #e2e8f0;
    border: 1px solid #cbd5e1;
    padding: 1px 7px;
    border-radius: 9999px;
    white-space: nowrap;
    flex-shrink: 0;
}

.phone-id-count-single {
    color: #64748b;
    background: #f1f5f9;
    border-color: #e2e8f0;
}

.phone-fetch-msg {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    color: #047857;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    padding: 1px 8px;
    border-radius: 9999px;
    white-space: nowrap;
    flex-shrink: 0;
}

.phone-group-cb {
    accent-color: #2563eb;
}

.account-row-cb {
    accent-color: #2563eb;
}

.modal {
    animation: modalPop 0.2s ease-out forwards;
}

@keyframes modalPop {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.section-card {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
}

.nav-active {
    background-color: #eff6ff;
    color: #2563eb;
    font-weight: 600;
}

.empty-state {
    background: linear-gradient(to bottom, #ffffff, #f8fafc);
}

.metric-card {
    transition: transform 0.2s ease;
}

.page-btn {
    min-width: 34px;
    height: 34px;
}

.compact-table th,
.compact-table td {
    vertical-align: middle;
}

.phone-cell {
    max-width: 178px;
}

.op-cell {
    max-width: 172px;
    font-size: 14px;
    line-height: 1.5;
    word-break: break-word;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    line-height: 1.35;
    padding: 3px 8px;
    border-radius: 9999px;
    font-weight: 500;
    white-space: nowrap;
}

.status-pill-fetched {
    color: #b45309;
    background: #fffbeb;
    border: 1px solid #fde68a;
}

.status-pill-submitted {
    color: #047857;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
}

.status-pill-querying {
    color: #1d4ed8;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

.status-pill-id-ready {
    color: #047857;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
}

.status-pill-query-failed {
    color: #b91c1c;
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.region-tag {
    font-size: 11px;
    font-weight: 600;
    color: #2563eb;
    background: #eff6ff;
    border: 1px solid #dbeafe;
    padding: 2px 6px;
    border-radius: 5px;
    flex-shrink: 0;
}

.action-btn {
    padding: 6px 10px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 7px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.15s ease;
}
